ORA-00907:缺少右括号 [英] ORA-00907:missing right parenthesis
本文介绍了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屋!
查看全文