ORA-00907:缺少右括号 [英] ORA-00907:missing right parenthesis

查看:84
本文介绍了ORA-00907:缺少右括号的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我根据约束编写查询,但每当执行判断时我都会出错。



以下查询如



i write the query based on constraints but i have error whenever excute the statment

the following query like as

CREATE TABLE EMP1(ENO NUMBER(6) CONSTRAINT ENO_PK PRIMARY KEY,ENAME VARCHAR2(10)
 CONSTRAINT ENAME_UN UNIQUE,JOB CHAR(10) CONSTRAINT JOB_CK CHECK(JOB IN('CLEARK'
,'MANAGER','ANALIST'),SAL NUMBER(6) DEFAULT 200,COMM NUMBER(6) CONSTRAINT COMM_N
N NOT NULL,DOB DATE CONSTRAINT DOB_CK CHECK(DOB<'12-JAN-1995'),DNO NUMBER(2)CONSTRAINT DNO_CK CHECK(DNO IN(10,20,30)),CONSTRAINT SAL_CK CHECK(SAL>100 AND SAL<9000));







请帮助我。



谢谢你。




PLEASE HELP ME.

THANK U.

推荐答案

我认为你在JOB_CK约束中错过了一个结束括号。

而不是

I think you're missing an ending parenthesis in JOB_CK constraint.
Instead of
JOB CHAR(10) CONSTRAINT JOB_CK CHECK(JOB IN('CLEARK','MANAGER','ANALIST'),



尝试


try

JOB CHAR(10) CONSTRAINT JOB_CK CHECK(JOB IN('CLEARK','MANAGER','ANALIST')),



作为旁注,我真的不会为这样的列使用固定大小的字段。而是考虑使用 VARCHAR2



还可以考虑在列定义后移动工资检查。所以脚本完整


As a side note I really wouldn't use a fixed size field for a column like that. Instead consider using VARCHAR2.

Also consider moving the salary check after the column definition. So the script in full

CREATE TABLE EMP1(
   ENO   NUMBER(6)    CONSTRAINT ENO_PK PRIMARY KEY,
   ENAME VARCHAR2(10) CONSTRAINT ENAME_UN UNIQUE,
   JOB   VARCHAR2(10) CONSTRAINT JOB_CK CHECK(JOB IN('CLEARK','MANAGER','ANALIST')),
   SAL   NUMBER(6)    DEFAULT 200 CONSTRAINT SAL_CK CHECK(SAL>100 AND SAL<9000),
   COMM  NUMBER(6)    CONSTRAINT COMM_NN NOT NULL,
   DOB   DATE         CONSTRAINT DOB_CK CHECK(DOB<'12-JAN-1995'),
   DNO   NUMBER(2)    CONSTRAINT DNO_CK CHECK(DNO IN(10,20,30))
);


这篇关于ORA-00907:缺少右括号的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆