ORA-06502
DB CAFE
thumb_up 추천메뉴 바로가기
- DBA { Oracle DBA 명령어 > DBA 초급 과정 > DBA 고급 과정 }
- 튜닝 { 오라클 튜닝 목록 }
- 모델링 { 데이터 모델링 가이드 }
1 ORA-06502[편집]
"ORA-06502: PL/SQL: 수치 또는 값 오류: 문자열 버퍼가 너무 작습니다" 오류
2 에러 발생 원인[편집]
- 프로시저 내에 선언된 변수에 어떤 값을 담으려고 할 때, 담으려고 하는 값의 크기가 선언된 변수의 크기보다 크다면 에러 발생
- 원인은 함수에서 조회 된 컬럼의 크기보다 리턴하는 변수의 크기가 작기 때문
3 해결 방안[편집]
- 문자열 길이를 원래값에 맞춰준다.
- 예를 들어,
- A라는 컬럼이 조회되었고 조회된 값은 변수 V_A에 입력되어 리턴된다.
SELECT A INTO V_A
FROM TABLE
- 이 때 A의 크기는 VARCHAR2(15)이고 , 리턴되는 변수 V_A의 크기는 VARCHAR(10) 으로 정의가 되어있다면 해당 오류가 발생한다.
- 해결 방안은 V_A의 크기를 VARCHAR(15)로 바꾼다.
- 주로 PL/SQL에서 VARCHAR2(4000)를 4000바이트 이상으로 사용하고자 할때 발생
- SQL에서는 VARCHAR2(4000) 까지 지원 , PL/SQL 에서 32K(32767 바이트) 까지 지원
- CLOB DBMS_LOB.SUBSTR(CLOB컬럼, 4000, 1) 에러 발생시
- DBMS_LOB.SUBSTR(CLOB컬럼, 10000, 1) 처럼 크기를 늘려서 사용