2

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

Oracle12 SQL 语法错误

4

1 回答 1

5

约束名称中有一个空格,这可能会使语法解析器感到困惑:

CONSTRAINT equip deptid_fk FOREIGN KEY (deptid) REFERENCES dept (deptid),
                ^

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

于 2021-02-02T16:38:43.173 回答