Oracle未知命令 - CONSTRAINT

时间:2014-11-24 19:31:36

标签: oracle

我决定在这里完全放出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 ...”开头 - 忽略其余行。)。我偶尔也会得到一个“未知的命令”)“ - 其余的行被忽略了。”有什么想法吗?

1 个答案:

答案 0 :(得分:7)

任何空行都会阻止SQL*Plus接受输入块并将其放入缓冲区 因此,当您在空行后启动CONSTRAINT关键字时,它会将其视为新命令,并抛出错误。

在运行所有DDLs之前试试这个。

set sqlblanklines on

您需要指示sql * plus忽略空行