Oracle未知命令 - CONSTRAINT

Wea*_*ler 0 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)
);
Run Code Online (Sandbox Code Playgroud)

同样,我得到的错误从第一个Constraint调用开始(未知命令以"CONSTRAINT ..."开头 - 忽略其余行.).我偶尔也会得到一个"未知的命令")" - 其余的行被忽略了." 有任何想法吗?

Mah*_*kar 7

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

在运行所有之前尝试一下DDLs.

set sqlblanklines on
Run Code Online (Sandbox Code Playgroud)

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