添加检查约束,获取无效的数据类型错误

时间:2013-05-09 20:48:46

标签: sql oracle oracle-sqldeveloper

使用Oracle SqlDeveloper

表T有两列 身份证号码) Desc(VARCHAR2)

我尝试以下查询添加支票:

ALTER TABLE T
ADD CONSTRAINT 100chk CHECK (ID BETWEEN 0 AND 100);
  

错误报告:SQL错误:ORA-00902:数据类型无效   00902. 00000 - “无效的数据类型”   *原因:
  *操作:

ID列是数字数据类型 - 为什么不让我添加该约束?

1 个答案:

答案 0 :(得分:7)

Oracle可能会对您的约束名100chk感到困惑。有效名称以字母开头。您可以在无效名称周围加上双引号,Oracle会接受它,但这通常被认为是一个坏主意。

尝试命名约束chk100

ALTER TABLE T ADD CONSTRAINT chk100 CHECK (ID BETWEEN 0 AND 100);

Oracle的对象命名规则是here。此链接适用于10.2,但信息也适用于11.x.