2017-01-17 2 views
0

오라클 테이블을 만들려고하는데 잘못된 데이터 유형 오류가 발생합니다.).오라클 : 테이블 만들기에 잘못된 데이터 유형 오류가 발생했습니다.

CREATE TABLE SCRIPT_LINE 
    (
     ID INTEGER PRIMARY KEY NOT NULL, 
     EPISODE_ID INTEGER NOT NULL, 
     LINE_NUMBER INTEGER, 
     RAW_TEXT VARCHAR(4000), 
     TIMESTAMP NUMERIC, 
     SPEAKING_LINE BOOLEAN, 
     CHARACTER_ID INTEGER NOT NULL, 
     LOCATION_ID INTEGER NOT NULL, 
     CHARACTER VARCHAR(500), 
     LOCATION VARCHAR(500), 
     SPOKEN_WORD VARCHAR(4000), 
     WORD_COUNT INTEGER 
    ); 

어디에서 오류가 발생할 수 있으십니까? 미리 감사드립니다.

+0

또한 [VARCHAR와 VARCHAR2의 차이점] (http://stackoverflow.com/questions/1171196/what-is-the-difference-between- varchar-and-varchar2). – MT0

+0

@ MT0 : 차이가 없습니다 VARCHAR은 VARCHAR2의 동의어입니다 –

+0

@a_horse_with_no_name 현재 구현의 차이점은 없지만 Oracle이 현재 지원하지 않는 ANSI 표준'VARCHAR'의 자리 표시 자입니다 (VARCHAR2 ')하지만 이후 버전에서 지원하도록 선택할 수 있습니다. 빈 문자열과 알려지지 않은 것 ('NULL') 사이에 의미와 다른 점이 있습니다. 따라서 현재 지원되지는 않지만 OP는 ANSI 표준이 구현되는 경우 가장 적합한 유형이 사용되도록 차이점을 이해하고 향후 적용 가능성을 고려해야합니다. – MT0

답변

2

오라클은 오라클이 부울을 지원하지 않기 때문에, 가장 좋은 대안 (1) Y/N 문자 일 것 BOOLEAN 데이터 형식을

+0

고마워. 그러나 그것은 내 개발자 콘솔에서 강조된 단어 였고, 그것이 존재했다고 믿게했습니다. –

+0

'BOOLEAN'은 PL/SQL에서 유효한 유형이지만 Oracle RDBMS 엔진에서는 유효한 유형이 아닙니다. 그래서 그것은 당신이 어디에 있는지에 달려 있습니다. :-) 개인적으로, 예/아니오 종류의 것이 필요할 때'VARCHAR2 (1) NOT NULL CHECK (whatever_field IN ('Y', 'N'))'을 사용합니다. 내 목적을 위해 충분히 잘 작동합니다. –

0

이 없습니다. 양자 택일로 number (1)을 사용하십시오. 0/1