1

使用 Oracle SqlDeveloper

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

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

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

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

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

4

1 回答 1

7

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

尝试命名您的约束chk100

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

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

于 2013-05-09T20:52:08.113 回答