2014-11-24 3 views
0

여기에 SQL 파일을 완전히 출력하기로 결정했습니다.Oracle 알 수없는 명령 - CONSTRAINT

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 ...."- 무시 라인의 나머지). 나는 때때로 '알려지지 않은 명령'을 얻는다.) "- 나머지는 무시했다." 어떤 아이디어?

+0

INT는 오라클의 유효한 데이터 형식없는 빈 줄을 무시해야합니다. 숫자 또는 정수로 변경해보십시오. – Shankar

+0

테스트 테이블'create table account (accountnumber int primary key);를 만들었고 내 환경 (11.2.0.3)에서 테이블을 잘 만들었습니다. 복사/붙여 넣기 오류가 아닌 것이 확실합니까? 이것을 sqlplus에 입력 하시겠습니까? – mmmmmpie

+0

위의 파일을 SQLPlus에로드하고 있습니다. 내 문제가 격리되지 않은 것처럼 파일의 전체를 추가하기로 결정했습니다. – Weasler

답변

5

빈 줄은 SQL*Plus이 입력 블록을 받아들이고 버퍼에 넣지 않도록합니다.
빈 줄 다음에 CONSTRAINT 키워드를 시작하면이 키워드를 새 명령으로 처리하고 오류가 발생합니다.

DDLs을 모두 실행하기 전에 사용해보십시오.

set sqlblanklines on 

당신는 SQL *를 지시 플러스