在oracle数据库中,我有一个表'emp_table',其列'eTIN'是NVARCHAR2(12)。我想修改它只接受0-9作为字符。我不想修改为数字类型。所以下次我将有进一步修改它的余地。怎么做到这一点?
答案 0 :(得分:4)
您可以尝试使用CHECK约束,如下所示:
CHECK (regexp_like(myCol,'^[[:digit:]]+$'))
像
这样的东西SQL> CREATE TABLE myTable(
2 myCol VARCHAR2(12),
3 CONSTRAINT constraint_name CHECK (regexp_like(myCol,'^[[:digit:]]+$'))
4 )
5 /
如果表已经创建,那么只需改变表格如下:
ALTER TABLE myTable ADD CONSTRAINT constraint_name CHECK (regexp_like(myCol,'^[[:digit:]]+$'))