oracle特定列接受特定格式的字符

时间:2016-01-06 07:32:13

标签: sql regex oracle plsql

在oracle数据库中,我有一个表'emp_table',其列'eTIN'是NVARCHAR2(12)。我想修改它只接受0-9作为字符。我不想修改为数字类型。所以下次我将有进一步修改它的余地。怎么做到这一点?

1 个答案:

答案 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:]]+$'))