오류 발생 상황 및 원인
ORA-00904: : invalid identifier
00904. 00000 - "%s: invalid identifier"
☞ 컬럼명에 오라클 예약어를 사용하여 오류가 발생함
오류 해결 방법
오라클 예약어가 아님을 알려주기 위해 큰 따옴표로 감싸주거나
오라클 예약어가 아닌 다른 컬럼명으로 바꾸기
※ 큰 따옴표 방법을 선택할 경우 향후 모든 쿼리문에서 큰 따옴표로 감싸줘야 하기 때문에 번거롭습니다.
반드시 그 컬럼명을 사용해야 하는 것이 아니라면 오라클 예약어 외의 다른 이름을 사용하시기를 권장합니다.
(참고) 오라클 예약어 목록
https://docs.oracle.com/cd/B19306_01/server.102/b14200/ap_keywd.htm#i690190
Oracle Database Reserved Words
475/479 D Oracle Database Reserved Words This appendix lists Oracle SQL reserved words. Words followed by an asterisk (*) are also ANSI reserved words. Note: In addition to the following reserved words, Oracle uses system- generated names beginning with "S
docs.oracle.com
그 외 ORA-00904 오류의 원인
ORA-00904 오류는 위와 같이 오라클 예약어를 사용한 경우 외에도
아래와 같은 경우에 발생할 수 있습니다.
1) SQL문이 부적절한 컬럼명을 가지고 있을 때
SQL에서 컬럼명은 아래의 기준을 충족해야 합니다.
① 컬럼명은 오라클 예약어가 아니어야 함
② 컬럼명의 첫 글자는 문자로 시작해야 함
③ 컬럼명은 30자 이하의 길이여야 함
④ 컬럼명에 특수기호는 _ $ # 만 포함할 수 있음
2) SQL문에 존재하지 않는 컬럼명이 있을 때
이러한 경우는 컬럼명에 오타가 있을 가능성이 높습니다.
(참고)
https://www.tekstream.com/resource-center/ora-00904-invalid-identifier/
ORA-00904: invalid identifier | TekStream
Error Ora-00904 means you are attempting to execute an SQL statement that either has an invalid column name or a column name which does not currently exist.
www.tekstream.com
'디버깅 로그' 카테고리의 다른 글
[JavaScript] <table>에서 행이 추가 되지 않는 문제 해결 방법 (0) | 2021.04.29 |
---|
댓글