반응형
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 명을 좀더 줄여주니 에러는 해결되었다.
반응형
'Study > 에러해결' 카테고리의 다른 글
java.lang.UnsupportedOperationException: null (0) | 2024.09.27 |
---|---|
Mapper.xml에서 동적쿼리 조건식 for input String 에러 (0) | 2024.07.15 |