提问人:Andrew Biddle 提问时间:2/3/2021 最后编辑:Andrew Biddle 更新时间:2/3/2021 访问量:395
SQL 语法错误:“缺少右括号”
SQL Syntax Error: "Missing Right Parenthesis"
问:
我知道 ORA-00907 表明我的代码中有语法错误,我只是找不到它。有人可以帮忙指出问题吗?我正在使用 SQL Developer (Oracle12c)。
CREATE TABLE equip
(equipid NUMBER(3),
edesc VARCHAR2(30),
purchdate DATE,
rating CHAR(1),
deptid NUMBER(2) NOT NULL,
etypeid NUMBER(2),
CONSTRAINT equip_equipid_pk PRIMARY KEY (equipid),
CONSTRAINT equip deptid_fk FOREIGN KEY (deptid) REFERENCES dept (deptid),
CONSTRAINT equip_etypeid_fk FOREIGN KEY (etypeid) REFERENCES etypes (etypeid),
CONSTRAINT equip_rating_ck CHECK (rating IN ('A','B','C')));
答:
5赞
Bill Karwin
2/3/2021
#1
约束名称中有一个空格,这可能会混淆语法解析器:
CONSTRAINT equip deptid_fk FOREIGN KEY (deptid) REFERENCES dept (deptid),
^
如果需要标识符中的空格,请用双引号分隔它们,例如 .但是,如果您可以在没有空格或标点符号的情况下拼写标识符,那就更容易了。"equip deptid_fk"
评论
0赞
Andrew Biddle
2/3/2021
棒。感谢您的帮助。简直不敢相信我错过了。
0赞
2/3/2021
@andrewbiddle - 除了这个(正确的)答案之外:你使用的几乎所有界面都会告诉你错误在哪里找到(代码行和行上的位置,或者像上面显示的 Bill 这样的标记)。这应该可以帮助您自己找到并修复错误。
1赞
Bill Karwin
2/3/2021
众所周知,Oracle 错误消息是无用的。我也没有看到这一点,直到我在MySQL中尝试了你的陈述,然后它告诉我问题出在哪里。:-)
1赞
marc_s
2/3/2021
@BillKarwin:谢天谢地,你有SQL代码可以复制和粘贴!;-)
评论