ORA-00911: 无效字符

ORA-00911: invalid character

我正在尝试编写我的第一个 table 创建带有列定义的脚本。我尝试了几种方法来消除此错误,但无济于事。请看一下我下面的代码中是否有明显的问题:

CREATE TABLE CD_TYPE (
CD_TYPE VARCHAR2(4) PRIMARY KEY,
CD_FORMAT VARCHAR2(10) 
);

CREATE TABLE MANUFACTURER (
MANUFACTURER_NUM NUMBER(3) PRIMARY KEY,
MANUFACTURER_NAME VARCHAR2(30) 
);

CREATE TABLE CD_TITLE (
CD_NUM    NUMBER(4) PRIMARY KEY,
TITLE   VARCHAR2(30),
MANUFACTURER_NUM VARCHAR2(30) FOREIGN KEY,
CD_TYPE   VARCHAR2(4) FOREIGN KEY,
ACQUIRED_DATE DATE,
ORIGINAL CHAR(1) 
);

CREATE TABLE CD_SN (
CD_NUM NUMBER(4) PRIMARY KEY FOREIGN KEY,
SERIAL_NUM VARCHAR2(30) PRIMARY KEY,
NUM_LIC_REMAIN NUMBER(2) 
);

问题在于读取的列

 MANUFACTURER_NUM VARCHAR2(30) FOREIGN KEY,

您忘记指定 table 这些列所指的内容。

你对带有 REFERENCES 子句的那个:

create table cd_title (
cd_num    number(4) primary key,
title   varchar2(30),
manufacturer_num             REFERENCES MANUFACTURER,
cd_type                      REFERENCES CD_TYPE,
acquired_date date,
original char(1)
);

或者,您可以使用 CONSTRAINT ... FOREIGN KEY (...) REFERENCES ... 子句指定外键的名称:

create table cd_title (
cd_num    number(4) primary key,
title   varchar2(30),
manufacturer_num,
cd_type,
acquired_date date,
original char(1),
--
CONSTRAINT cd_title_fk1 FOREIGN KEY (manufacturer_num) REFERENCES manufacturer,
CONSTRAINT cd_title_fk2 FOREIGN KEY (cd_type         ) REFERENCES cd_type
)