日期:2014-05-17  浏览次数:20851 次

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 ('男','女'));