ORA-00906: missing left parenthesis报错 Oracle建表左括号缺失排查
错误原因
你的ORA-00906报错直接来自主键约束的定义错误:定义PRIMARY KEY约束时必须用括号指定主键对应的字段,你漏写了这部分括号,Oracle解析时找不到预期的左括号就触发了该报错。
除此之外你的建表语句还有几处需要修正的问题:
- 约束名重复:
CUSTNO和FACNO两个字段的非空约束都使用了CUSTNO_NOTNULL2作为约束名,同一表内的约束名必须唯一,将FACNO的非空约束名改为FACNO_NOTNULL即可。 - 字段类型与检查逻辑不匹配:
ESTAUDIENCE字段定义为字符串类型VARCHAR2(30),但检查约束写的是数值比较逻辑ESTAUDIENCE > 0,建议将该字段类型修改为NUMBER符合业务逻辑。 - 可选修正:
ESTCOAST大概率是预估成本ESTCOST的拼写错误,可按需调整。
修正后的建表语句
CREATE TABLE EVENTREQUEST( EVENTNO VARCHAR2(8) CONSTRAINT EVENTNO_NOTNULL NOT NULL, DATEHELD DATE CONSTRAINT DATEHELD_NOTNULL NOT NULL, DATEREQ DATE CONSTRAINT DATEREQ_NOTNULL NOT NULL, CUSTNO VARCHAR2(8) CONSTRAINT CUSTNO_NOTNULL2 NOT NULL, FACNO VARCHAR2(8) CONSTRAINT FACNO_NOTNULL NOT NULL, DATEAUTH DATE, STATUS VARCHAR2(15) CHECK (STATUS IN ('Pending', 'Denied', 'Approved')) CONSTRAINT STATUS_NOTNULL NOT NULL, ESTCOST VARCHAR2(30) CONSTRAINT ESTCOST_NOTNULL NOT NULL, ESTAUDIENCE NUMBER CHECK(ESTAUDIENCE > 0) CONSTRAINT ESTAUDIENCE_NOTNULL NOT NULL, BUDNO VARCHAR2(8), CONSTRAINT PK_EVENTNO PRIMARY KEY (EVENTNO), CONSTRAINT FK_CUSTONO FOREIGN KEY (CUSTNO) REFERENCES CUSTOMER(CUSTNO), CONSTRAINT FK_FACNO FOREIGN KEY (FACNO) REFERENCES FACILITY(FACNO) );
内容的提问来源于stack exchange,提问作者Gregory Morris
相关产品推荐
相关产品推荐

