안녕하세요.
http://www.gurubee.net/lecture/1073
사용자 정의 예외를 발생시킬 때
ORA-20001: 부서에 사원이 몇명 안되네요.. ORA-06512: "SCOTT.USER_EXCEPTION", 줄 17에서 ORA-06512: 줄 1에서 이 부분에서 사용자 정의 예외로 명시한 첫 째 라인 오류만 발생시킬 수 있는 옵션 혹은 방법이 있나요? 오브젝트 및 참조라인을 보여줄 필요가 없고 사용자메시지만 보여주고 싶습니다. 오라클 버전은 10g 입니다.
감사합니다.
EXCEPTION_INIT과 RAISE_APPLICATION_ERROR를 같이 쓰면 될듯합니다.
http://www.gurubee.net/lecture/1072
CREATE OR REPLACE PROCEDURE User_Exception (v_deptno IN emp.deptno%type ) IS -- 예외의 이름을 선언 user_define_error EXCEPTION; -- STEP 1 cnt NUMBER; PRAGMA EXCEPTION_INIT(user_define_error, -20001); BEGIN DBMS_OUTPUT.ENABLE; SELECT COUNT(empno) INTO cnt FROM emp WHERE deptno = v_deptno; IF cnt < 5 THEN -- RAISE문을 사용하여 직접적으로 예외를 발생시킨다 RAISE_APPLICATION_ERROR(-20001, '부서에 사원이 몇명 안되네요..'); -- STEP 2 END IF; EXCEPTION -- 예외가 발생할 경우 해당 예외를 참조한다. WHEN user_define_error THEN -- STEP 3 DBMS_OUTPUT.PUT_LINE( sqlerrm ); END; / SQL> set serveroutput on; SQL> execute user_exception(10); ORA-20001: 부서에 사원이 몇명 안되네요.. PL/SQL procedure successfully completed.