반응형
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