2017-09-29 2 views
0

다음 명령을 사용하여 SQL에서 테이블을 만들 때 ORA-00936 : 누락 된 표현식 오류 메시지가 나타납니다. 내가 발을 디딜 때 어떤 아이디어가 있니?테이블 만들기 : ORA-00936 : 누락 된 표현

CREATE TABLE Workorders (
    Wo# VARCHAR2(8) PRIMARY KEY, 
    Proj# VARCHAR2(8) REFERENCES Project (Proj#), 
    Wo_desc VARCHAR2(30) NOT NULL UNIQUE, 
    Wo_assigned CHAR(40), 
    Wo_hours NUMBER(6) NOT NULL CHECK(>0), 
    Wo_start DATE, 
    Wo_due DATE, 
    Wo_complete CHECK (Wo_complete IN ('Y','N'))); 
+1

은 ((6) NOT NULL CHECK'이 라인에서 Wo_hours 번호를보세요> 0), and this one Wo_complete CHECK (Wo_complete IN ('Y', 'N'))); –

+0

여러 구속 조건 사이에 쉼표가 필요합니까? 또는 CHECK를 잘못하고 있습니까? –

+1

1. 점검 제한 조건 정의에 컬럼 이름이 누락되었습니다. 2. 열의 데이터 형식이 누락되었습니다. –

답변

1

당신은 그런 점검 제한 조건을 정의 할 수 없습니다, 당신은 체크에 열 이름이 필요합니다

CREATE TABLE Workorders (
    Wo# VARCHAR2(8) PRIMARY KEY, 
    Proj# VARCHAR2(8) REFERENCES Project (Proj#), 
    Wo_desc VARCHAR2(30) NOT NULL UNIQUE, 
    Wo_assigned CHAR(40), 
    Wo_hours NUMBER(6,0) NOT NULL CHECK (wo_hours > 0), 
    Wo_start DATE, 
    Wo_due DATE, 
    Wo_complete CHAR(1) CHECK (Wo_complete IN ('Y','N')) 
); 
+0

테스트에서 나는 Project 테이블을 생성하고 Proj #를 기본 키로 만들었습니다. DDL을 실행 한 후,'references' 제약 조건을 보았을 때 제약 조건 인'FOREIGN KEY ("PROJ #") REFERENCES "SCOTT"를 생성합니다. "PROJECT"("PROJ #")' –

+0

@PatrickBacon 혼란 스러워요. 귀하의 의견과 함께 전달하려는 지점에 관해서. 관련성에 대해 자세히 설명해 주시겠습니까? – MT0

+0

op가 외부 키 제약 조건을 명시 적으로 호출하지 않았다는 사실을 알게되었지만 나는 구문에 동의합니다. –