2013-05-09 20 views
1

使用Oracle的SQLDeveloper添加检查约束,得到无效的数据类型错误

表T有两列 ID(号码) 说明(VARCHAR2)

我尝试下面的查询,添加检查:

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

Error report: SQL Error: ORA-00902: invalid datatype 00902. 00000 - "invalid datatype" *Cause:
*Action:

ID列是一个数字数据类型 - 为什么没有让我补充一点约束?

回答

7

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

尝试命名你的约束,而不是chk100

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

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

相关问题