CREATE OR REPLACE p_test(asVal IN VARCHAR2(1), asRtn OUT VARCHAR2(200))
IS
-- 선언부
SQL_ERROR_RTN EXCEPTION;
BEGIN
-- 처리부
BEGIN
-- 1번로직
EXCEPTION
WHEN OTHERS THEN
asRtn := '1번로직수행중에러 : (' || sqlcode || ')' || sqlerrm;
RAISE SQL_ERROR_RTN;
END;
BEGIN
-- 2번로직
EXCEPTION
WHEN OTHERS THEN
asRtn := '2번로직수행중에러 : (' || sqlcode || ')' || sqlerrm;
RAISE SQL_ERROR_RTN;
END;
BEGIN
-- 3번로직
EXCEPTION
WHEN OTHERS THEN
asRtn := '3번로직수행중에러 : (' || sqlcode || ')' || sqlerrm;
RAISE SQL_ERROR_RTN;
END;
EXCEPTION
WHEN SQL_ERROR_RTN THEN
-- 사용자 정의 에러 처리
WHEN OTHERS THEN
-- 기타 에러 처리
END;
리턴값을 받아 찍어보면 에러 위치를 알 수 있습니다.