데이터베이스/ORACLE
오라클 데이터베이스 [ORA-00904, ORA-01722, ORA-12801 + ORA-00600 / ORA-07445, ORA-10046] 오류
멈머이
2025. 8. 6. 20:56
728x90
1. ORA-00904: "COLUMN_NAME": invalid identifier
- 의미 : 존재하지 않는 컬럼을 SELECT 하거나, 힌트에 잘못된 컬럼명을 지정한 경우
SELECT /*+ INDEX(emp emp_xyz_idx) */ enamee FROM emp;
-- ename → 오타: enamee
* 해결
- 컬럼명/테이블명 오타 확인
- 힌트 내 객체명도 정확히 기입
2. ORA-01722: invalid number
- 의미 : 숫자형 컬럼에 문자형 데이터를 비교하거나, WHERE 조건에서 암묵적 형변환이 일어남
SELECT * FROM emp WHERE sal = 'A1000';
-- sal은 NUMBER형인데 문자열 비교
* 해결
- TO_NUMBER(), TO_CHAR() 등 명시적 형변환 사용
- WHERE절에 형변환이 필요하면 컬럼 쪽에 하지 말고 입력값 쪽에 적용
3. ORA-12801 + ORA-00600 / ORA-07445
- 의미 : 병렬 힌트나 특정 인덱스 힌트가 오라클 내부 버그와 충돌, ORA-00600, 07445는 내부 오류 (지원 요청 대상)
- 원인 : 병렬 처리나 힌트 적용 후 내부 오류 발생
* 해결
- 힌트를 제거해보고 실행
- 병렬 처리를 줄이거나 OFF
- 패치 적용 여부 확인
4. ORA-10046 / tkprof 사용 시 “unparsed” 오류
- 의미 : SQL Trace 분석 시 쿼리가 파싱되지 않음
- 원인 : 구문 오류가 있거나 바인드 변수 값이 잘못 전달됨
* 해결
- SQL 문장을 직접 수행해 파싱 가능 여부 확인
- 바인드 변수 값 검토
728x90