ORA-00907缺失右括号错误求助:SQL新手建表语句排查
解决ORA-00907: missing right parenthesis的建表语句问题
嘿,我帮你揪出问题根源啦!你的建表语句里藏了一个超容易看错的笔误,这才是触发错误的核心原因:
- 在
TITLE varchar (3O)这一行中,你写的是字母O(大写的O),而不是数字0!Oracle解析器遇到这个非法的字符组合时,直接乱了语法解析逻辑,最后抛出了看似“缺右括号”的误导性错误(这是Oracle常见的“报错不准”情况之一)。
修正后的正确建表语句如下:
CREATE TABLE APP_DEGREE ( DEGREE_ID varchar(6) NOT NULL, TITLE varchar(30), -- 把错误的3O改成数字30 INSTITUTION varchar(30), App_ID varchar(6) NOT NULL, CONSTRAINT constr_degree_pk PRIMARY KEY (DEGREE_ID), CONSTRAINT constr_degree_fk FOREIGN KEY (App_ID) REFERENCES APPLICANT (App_ID) );
最后再给你两个小提醒:
- 定义字符串类型时,括号和数字之间尽量不要加空格(Oracle虽然允许,但统一格式会让代码更易读)
- 确保
APPLICANT表已经提前创建,且其中的App_ID列类型和APP_DEGREE里的App_ID完全匹配,不然后续可能会触发外键约束错误
内容的提问来源于stack exchange,提问作者Kendall O'Connor
相关产品推荐
相关产品推荐

