SQL 语法错误:“缺少右括号”

And*_*dle 3 sql oracle syntax-error ora-00907 oracle12c

我知道 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')));

Run Code Online (Sandbox Code Playgroud)

Oracle12 SQL 语法错误

Bil*_*win 5

约束名称中有一个空格,这可能会混淆语法解析器:

CONSTRAINT equip deptid_fk FOREIGN KEY (deptid) REFERENCES dept (deptid),
                ^
Run Code Online (Sandbox Code Playgroud)

如果您需要标识符中的空格,请用双引号分隔它们,例如"equip deptid_fk". 但是,如果您可以拼写没有空格或标点符号的标识符,那就更容易了。