我正面临在oracle中向表的列添加约束的问题 该列使用数据类型char(500 char)定义。 我需要设置只允许数字和N / A值插入列中的约束。
答案 0 :(得分:1)
从这篇文章堆栈溢出文章: Oracle 11g - Check constraint with RegEx 你可以看到正则表达式适用于检查约束。
支持你想要的正则表达式是:
^([0-9]+|N/A)$
表达式开头的 ^
表示行/行/文本的开头;
[0-9]+
个数字1到x;
|
或运营商;
N/A
具体文字;
$
行尾/行/文字
答案 1 :(得分:0)
您可以尝试这样:
CHECK (column IN (REGEXP_LIKE(column, '^[[:digit:]]{9}$'), 'N/A')