将列添加到具有JSON CLOB约束Oracle的表中

时间:2015-09-21 19:33:30

标签: json oracle clob oracle12c

我正在尝试向Oracle表添加一个列,并检查我要添加的CLOB类型列的JSON。

ALTER TABLE TAB1 (ADD COL_NEW CLOB CONSTRAINT CONS1 (CLOB IS JSON));
ALTER TABLE TAB1 ADD COL_NEW CLOB CONSTRAINT CONS1 (CLOB IS JSON) ;
ALTER TABLE TAB1 ADD COL_NEW CLOB CONSTRAINT CONS1 (CLOB IS JSON);

以上所有内容都失败了:

ERROR execute() failed with: ORA-02253: constraint specification not allowed here     
ERROR execute() failed with: ORA-01735: invalid ALTER TABLE option 

1 个答案:

答案 0 :(得分:4)

语法为constraint <<constraint name>> <<constraint type>> (<<columns>>。您正在尝试创建检查约束,因此您的约束类型应为check。您还需要在(<<column name>> is json)表达式中指定新列的名称,而不是clob数据类型。所以你想要constraint cons1 check( col_new is json )

ALTER TABLE table_name
  ADD( column_name CLOB 
         CONSTRAINT constraint_name CHECK (column_name IS JSON ));