PROCEDURE DELETELOC (
P_LAYTKY IN VARCHAR2
,P_LBUILD IN VARCHAR2
,P_LSTORY IN VARCHAR2
,P_WAREKY IN VARCHAR2
,P_STOKKY IN VARCHAR2
,P_ZONEKY IN VARCHAR2
,L_RESULT OUT WOSRECCURTYP)
IS
V_ALTZONE VARCHAR2(3000);
V_ERRNUM VARCHAR(255);
V_ERRMSG VARCHAR(255);
BEGIN
BEGIN
UPDATE LAYOI
SET INDBZL = 'D'
WHERE LAYTKY = P_LAYTKY
AND BLOCTY NOT IN ('30','39');
COMMIT;
UPDATE LAYOI
SET INDBZL = 'D'
WHERE LAYTKY = P_LAYTKY
AND LBLOCK IN (
SELECT LBLOCK
FROM LOCBL
WHERE STOKKY = P_STOKKY
AND WAREKY = P_WAREKY
--AND ZONEKY IN (V_ALTZONE)
AND ZONEKY IN ( SELECT * FROM table(split(REPLACE(P_ZONEKY,'::', ''),',') ) )
);
COMMIT;
OPEN L_RESULT for
SELECT '0' FROM DUAL;
EXCEPTION
WHEN OTHERS THEN
ROLLBACK;
OPEN L_RESULT for
SELECT '-1' FROM DUAL;
V_ERRNUM := SQLCODE;
V_ERRMSG := substr(SQLERRM, 1, 255);
raise_application_error(-20002, v_errmsg);
END;
END DELETELOC;
저번에 이프로시저에 대해 물어보았는데 Error 떨어지는부분이
raise_application_error(-20002, v_errmsg) 이 함수 입니다 .단순히 로그를 남기는 함수인데 , 지우 고 실행하면 에러는 없네요..
9I 하고 11G 하고 버젼 차이때문에 그런것같은데.. 11g 를 9I 환경에 맞게 셋팅하려면 어떤것을 참조하면서 해야 할까요 ?
항상 좋은 답변 감사드립니다. ( __ )
[단순히 로그를 남기는 함수인데 , 지우고 실행하면 에러는 없네요.]
이 함수는 로그를 남기는 함수가 아니라 에러를 발생시키는 함수입니다.
당연히 넣으면 에러나고 빼면 에러 안나겠죠.
[11G에서는 에러 안나는데 9i에서만 에러 난다면?]
환경이 다르니..
11g 에선 아예 Exception 절로 빠지질 않은 듯 하고
9i 에선 Exception 절로 빠져서 해당 에러가 발생된 듯 하네요.