본문 바로가기
Study/에러해결

SQL Error [972] [42000]: ORA-00972: 식별자의 길이가 너무 깁니다

by 얏옹이 2024. 9. 24.
반응형

 

 

SI 개발, 혹은 SM을 하다보면 남이 짠 쿼리를 들여다보고 오류 수정 및 리팩토링을 해야할때가 있다.

 

물론 내가 짠 코드도 동료검토를 받아서 최종적으로 클린코드로 작성해야한다.

 

오늘 쿼리를 조회하고 각 화면단 기능 점검을 하는데 ORA-00972: 식별자의 길이가 너무 깁니다 라는 에러를 만났다

 

이 에러는 일반적으로 테이블, 열 이름, 인덱스 이름, 또는 기타 객체(AS 별칭, CTE명)이 각 DBMS에서 허용하는 글자수를 초과했을때 발생하는 에러이다.

 

반응형

 

현재 다루는 DBMS는 Oracle이며 Oracle에서는 버전별로 이 최대 길이가 상이하다.

 

Oracle 12.1 및 이전 버전: 객체 이름의 최대 길이는 30 바이트 이며 12.2 및 이후 버전: 객체 이름의 최대 길이는 128 바이트 이다.

 

지금 사용하고 있는 버전은 12.1 미만이므로 최대 글자수 허용이 30바이트(영/숫자 기준 30글자) 까지만 된다는건데

 

쿼리문을 살펴보니 CTE에서 사용하고 있는 가상 테이블의 명칭이 TM_HOUSE_RNT_BLD_LND_DEVLOP_INCM_L 라는 테이블이 있었다.

 

특수문자 포함 30글자가 넘기때문에 30바이트 초과로 발생하는 에러였다.

 

CTE 명을 좀더 줄여주니 에러는 해결되었다.

 

 

반응형