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

los*_*its 1 sql oracle oracle-sqldeveloper

使用Oracle SqlDeveloper

表T有两列ID(Number)Desc(VARCHAR2)

我尝试以下查询来添加检查:

ALTER TABLE T
ADD CONSTRAINT 100chk CHECK (ID BETWEEN 0 AND 100);
Run Code Online (Sandbox Code Playgroud)

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

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

Ed *_*bbs 7

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

尝试命名您的约束chk100:

ALTER TABLE T ADD CONSTRAINT chk100 CHECK (ID BETWEEN 0 AND 100);
Run Code Online (Sandbox Code Playgroud)

Oracle的对象命名规则就在这里.此链接适用于10.2,但信息也适用于11.x.