Database/Oracle

[Oracle] 예약어 확인(ORA-00903 / ORA-00904)

📝 작성 : 2021.02.17  ⏱ 수정 : 
728x90

USER라는 테이블을 생성합니다.



CREATE TABLE USER (
    ID VARCHAR2(10)
);



이 간단한 DDL은 ORA-00903: invalid table name오류를 냅니다. 그 이유는 테이블명을 오라클 예약어로 사용했기때문입니다.



CREATE TABLE "USER" (
    ID VARCHAR2(10)
);



위와 같이 쌍따옴표(")로 감싸주면 됩니다. 하지만 테이블을 조회해보면 같은 오류가 발생합니다. 이 역시 쌍따옴표(")로 감싸주면 되지만 매번 이러기 불편합니다. 이런경우 예약어를 피해서 테이블명을 만들어주는 것이 편할 수 있습니다.



SELECT * FROM V$RESERVED_WORDS



위의 쿼리를 통해 예약어를 확인 할 수 있습니다.



또한 테이블 생성시 ORA-00904: invalid identifier의 발생은 컬럼명에 예약어가 들어가 있는 경우 발생 할 수 있습니다.

반응형

'Database > Oracle' 카테고리의 다른 글

[Oracle] LAG, LEAD 알아보기  (0) 2022.01.06
[ORACLE] ORA-00907 missing right parenthesis  (0) 2020.09.22
[ORACLE] DDL, DML, DCL  (0) 2020.06.24