尝试创建 CHECK 约束时出现 ORA-00907

Posted

技术标签:

【中文标题】尝试创建 CHECK 约束时出现 ORA-00907【英文标题】:ORA-00907 when trying to create a CHECK constraint 【发布时间】:2011-02-08 09:37:41 【问题描述】:

我正在尝试通过执行以下 SQL 语句在表上创建检查约束:

alter table "ApplicationConfiguration" add
constraint APPLICATIONCONFIGURATION_CK1
CHECK (ValueType IN ('string', 'int', 'decimal, 'date', 'time', 'datetime', 'binary'))

但我收到以下错误:

ORA-00907: Missing right parenthesis

我完全迷路了。我做错了什么?

附加信息:

ApplicationConfiguration 表 存在并且有一列类型 nvarchar(32) not null 命名为 ValueType 数据库是 Oracle 10g Express 发布 10.2.0.1.0 我正在执行 使用 Web 客户端声明 (Application Express 2.1.0.00.39) 数据库用户拥有 DBA 权限

谢谢!

【问题讨论】:

【参考方案1】:

错误消息没有帮助,但您确实有语法错误 - 此处缺少单引号:

'decimal,

【讨论】:

【参考方案2】:

错误信息是正确的!

十进制在末尾缺少一个'>

CHECK (ValueType IN ('string', 'int', 'decimal, ...

【讨论】:

呃……我一定要休息一下。 :-(

以上是关于尝试创建 CHECK 约束时出现 ORA-00907的主要内容,如果未能解决你的问题,请参考以下文章

尝试从 aws ec2 客户端访问存储桶时出现位置约束异常

ORA-02291: 当我尝试添加数据时出现完整性约束错误

如何在SQL表中的性别进行check约束?

尝试向 MySQL 中的 table.column 添加唯一约束时出现重复条目​​错误

复制表时出现约束异常?

Django 导入 - 导出:尝试在具有唯一性或唯一性约束的字段中插入重复记录时出现 IntegrittyError