2016-02-10 112 views
-1

我正面臨向oracle的表中的列添加約束的問題- 該列使用數據類型char(500 char)定義。 我需要把限制,只允許插入數字和N/A值的列。在列中添加約束oracle

+0

請編輯與問題,你嘗試過什麼,你都面臨 – Noel

回答

1

從這篇文章堆棧溢出文章: Oracle 11g - Check constraint with RegEx 你可以看到,正則表達式工作檢查約束。

支持你希望會是怎樣一個正則表達式:

^([0-9]+|N/A)$ 

^在表達的啓動意味着線/行/文開始; [0-9]+數字1至x; |或運營商; N/A具體文字;行/行/文 $結束

+0

謝謝你這個問題......但這個正則表達式是允許我插入其他字符:( – smrita

+0

我現在有一個問題測試,但我想我錯過了從哪裏到字符串必須找到的邊界,我會更新我的答案。 –

0

你可以嘗試這樣的:

CHECK (column IN (REGEXP_LIKE(column, '^[[:digit:]]{9}$'), 'N/A')