본문 바로가기

프로그램

[ORACLE]SQLCODE, SQLERRM

반응형

PLSQL 의 EXCEPTION 발생 시 내부적으로 에러 정보를 가지고 있는 항목


SQLCODE : 에러코드

SQLERRM : 에러메시지


DBMS_OUTPUT.PUT_LINE('ERR_MSG : ' || SQLERRM);


컬럼에 바로 매핑은 10i 기준으로 오류가 나는 듯 함.


BEGIN

EXCEPTION

WHEN OTHERS THEN

UPDATE TMP_TBL SET

FAIL_MSG = SUBSTR(SQLERRM, 1, 500)

WHERE SEQ = CR01.SEQ

;

=> 여기서 오류 발생함

END

;


그래서 이를 변수 한개 선언 후 입력한 후 사용함


LV_FAIL_MSG := SQLERRM;



여기서 꾀름칙 한것이 LV_FAIL_MSG의 사이즈 문제인데..

일단 모 크게 잡았다.


일단은 구글링 해보니

https://community.oracle.com/thread/479922?start=0&tstart=0


오라클 버젼에 따라 256 or 512 라고 하니 varchar2(1000) 정도로 해두면 문제는 없을 듯 하다.


참고 url : http://www.gurubee.net/lecture/1074