Develope Me!

[Oracle/error] ORA-00984: column not allowed here 본문

DB/Oracle

[Oracle/error] ORA-00984: column not allowed here

코잘알지망생 2021. 10. 19. 21:01

에러 발생 - 원인

파이널 프로젝트를 준비하기 시작하면서 이제까지 배웠던 내용들을 다시 복습해보고자 테이블을 생성하는 작업부터 시작해봤다. 그러던 중 'ORA-00904: : invalid identifier' 오류가 발생했다. 

 

테이블을 생성하기 위해 작성한 쿼리는 이렇다. 

CREATE TABLE REVIEW(
    REVIEW_NO NUMBER(4) NOT NULL,
    ID VARCHAR2(20) NOT NULL,
    SCORE NUMBER(2) DEFAULT 0 NOT NULL,
    COMMENT VARCHAR2(500) NOT NULL
);

 

 

발생한 포인트는 'COMMENT '컬럼에 있다.

 

에러 발생 - 해결

바로 예약어를 컬럼명으로 사용했다는 게 에러 발생 포인트이다.

컬럼명을 지정할 때는 예약어를 사용하면 안된다. (설정하는 방법은 있으나 가급적 사용하지 않는 것이 좋음)

COMMENT 대신 OPINION으로 바꿔줬더니 테이블이 생성됐다!

 

 

[참고: 오라클 예약어 리스트]

ACCESS ADD * ALL * ALTER * AND * ANY *AS * ASC *
AUDIT BETWEEN * BY * CHAR * CHECK * CLUSTER
COLUMN COMMENT COMPRESS CONNECT * CREATE *
CURRENT * DATE * DECIMAL * DEFAULT * DELETE *
DESC * DISTINCT * DROP * ELSE * EXCLUSIVE EXISTS
FILE FLOAT * FOR * FROM * GRANT * GROUP * HAVING *
IDENTIFIED IMMEDIATE * IN * INCREMENT INDEX
INITIAL INSERT * INTEGER * INTERSECT * INTO * IS *
LEVEL * LIKE * LOCK LONG MAXEXTENTS MINUSMLSLABEL
MODE MODIFY NOAUDIT NOCOMPRESS NOT * NOWAIT
NULL * NUMBER OF * OFFLINE ON * ONLINE OPTION *
OR * ORDER * PCTFREE PRIOR * PRIVILEGES * PUBLIC *
RAW RENAME RESOURCE REVOKE * ROW ROWID ROWNUM
ROWS * SELECT * SESSION * SET * SHARE SIZE * SMALLINT *
START SUCCESSFUL SYNONYM SYSDATE TABLE * THEN *
TO * TRIGGER UID UNION * UNIQUE * UPDATE *
USER * VALIDATE VALUES * VARCHAR * VARCHAR2
VIEW * WHENEVER * WHERE WITH *

 

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

[Oracle/error] ORA-12899: value too large for column  (0) 2021.08.15
Comments