2016-01-06 35 views
1

在oracle數據庫中,我有一個'emp_table'表,它具有一個列'eTIN',它是NVARCHAR2(12)。我想修改它只接受0-9作爲字符。我不想修改爲數字類型。這樣下一次我將有足夠的空間進一步修改它。如何實現這一目標?oracle特定列接受字符的特定格式

回答

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像這樣的表:

ALTER TABLE myTable ADD CONSTRAINT constraint_name CHECK (regexp_like(myCol,'^[[:digit:]]+$'))