我决定在这里完全放出SQL文件。
CREATE TABLE Account
(
AccountNumber INTEGER NOT NULL PRIMARY KEY,
Name varchar(30) NOT NULL
);
CREATE SEQUENCE SEQ_ADDR START WITH 1 INCREMENT BY 1;
CREATE TABLE Address
(
AddressNumber INTEGER NOT NULL PRIMARY KEY,
AccountNumber INTEGER NOT NULL,
IsPrimary INTEGER NOT NULL,
StreetName varchar(50) NOT NULL,
ZipCode INTEGER NOT NULL
);
CREATE TABLE Bill
(
AccountNumber INTEGER NOT NULL,
EndDate DATE NOT NULL,
StartDate DATE NOT NULL,
DueDate DATE NOT NULL,
CONSTRAINT BillFK FOREIGN KEY (AccountNumber) REFERENCES Account(AccountNumber),
CONSTRAINT BillPK PRIMARY KEY (AccountNumber, EndDate)
);
同样,我得到的错误从第一个Constraint调用开始(未知命令以“CONSTRAINT ...”开头 - 忽略其余行。)。我偶尔也会得到一个“未知的命令”)“ - 其余的行被忽略了。”有什么想法吗?
答案 0 :(得分:7)
任何空行都会阻止SQL*Plus
接受输入块并将其放入缓冲区
因此,当您在空行后启动CONSTRAINT
关键字时,它会将其视为新命令,并抛出错误。
在运行所有DDLs
之前试试这个。
set sqlblanklines on
您需要指示sql * plus忽略空行