当前位置: 代码迷 >> Oracle开发 >> check约束报错!
  详细解决方案

check约束报错!

热度:60   发布时间:2016-04-24 07:30:40.0
check约束报错!!在线等
11g创建表和约束报错,同样的表和约束我不用中文就没问题,可以创建
我也尝试在10g上创建都没问题,但不知道为什么11g报错,求解
SQL> create table test15 (name char(10), sex char(4) constraint ck_sex_test13 check (sex='男'or sex='女'));
create table test15 (name char(10), sex char(4) constraint ck_sex_test13 check (sex='男'or sex='女'))
  *
ERROR at line 1:
ORA-00907: missing right parenthesis


SQL> create table test15 (name char(10), sex char(4) constraint ck_sex_test13 check (sex='0'or sex='1'));

Table created.

------解决方案--------------------
我开始猜是中英文环境的问题不过实验了以下,不是这个原因,我在英文环境下,也能正常创建
我的也是11g
你的错误的提示是你少了个括号,你看一下是不是因为折行而产生的错误。

------解决方案--------------------
这样就行了
 sex char(4) check(sex='男' or sex='女')

如果是添加约束
alter table test15 add constraint sex check(sex in ('男','女'));
  相关解决方案