Database/Oracle

[Oracle]ORA-06502 : PL/SQL: 수치 또는 값 오류 문자열 버퍼가 너무 작습니다.

  • -
반응형

 

DB 함수 생성 작업 중 처음 보는 SQLCODE가 조회되었습니다..

 

원인을 찾으려고 이것저것 해보다가 유용한 함수 하나를 발견했습니다.

DBMS_OUTPUT.PUT_LINE(SQLERRM);

SQLERRM은 오류 코드(SQLCODE)와 관련된 메세지를 반환해주는 함수입니다.

FN_GET_WORKTM이라는 함수에는 예외 처리로 SQLCODE를 리턴해주고 있는데 검색 중 발견한 함수를 바로 사용해봤습니다.

 

 

 

그리고 다시 조회를 해봤습니다.

 

 

오류 메시지가 출력되고 아래 DBMS OUTPUT에서 그 이유를 찾을 수 있었습니다.

 

 

ORA-06502: PL/SQL: 수치 또는 값 오류 문자열 버퍼가 너무 작습니다.

원인은 함수에서 조회 된 컬럼의 크기보다 리턴하는 변수의 크기가 작았기 때문이었습니다.

 

예를 들어, A라는 컬럼이 조회되었고 조회된 값은 변수 V_A에 입력되어 리턴됩니다.

=> SELECT A INTO V_A FROM TABLE

 

이 때 A의 크기는 VARCHAR2(15)이고 리턴되는 변수 V_A의 크기는 VARCHAR(10)으로 정의가 되어있다면 해당 오류가 발생합니다.

프로시저에서도 이런 에러가 발생할 수 있습니다. 프로시저 내에 선언된 변수에 어떤 값을 담으려고 할 때, 담으려고 하는 값의 크기가 선언된 변수의 크기보다 크다면 이 에러를 마주칠 수 있을 것입니다.

 

동일하게 맞추어 다시 조회하니 정상 조회가 되었습니다.

 


피드백은 언제나 환영입니다 :)

반응형
Contents

포스팅 주소를 복사했습니다.

이 글이 도움이 되었다면 공감 부탁드립니다.