Oracle PL/SQL 강좌
미리 정의되지 않은 예외(Non-Predefined Exception) 8 7 31,233

by 김정식 PRAGMA EXCEPTION_INIT 미리 정의되지 않은 예외 EXCEPTION [2002.01.20]


미리 정의되지 않은 예외란?

  미리정의되지 않은 예외는 사용자가 선언절에서 예외명을 정의하고, Oracle Server에서 제공하는 Error 번호를 사용하여, 정의된 예외와 연결한 후 EXCEPTION절에서 정의된 예외를 사용한다.

  - STEP 1 : 예외의 이름을 선언 (선언절)

  - STEP 2 : PRAGMA EXCEPTION_INIT문장으로 예외의 이름과 오라클 서버 오류 번호를 결합 (선언절)

  - STEP 3 : 예외가 발생할 경우 해당 예외를 참조한다(예외절)

미리 정의되지 않은 예외 예제

 
SQL> CREATE OR REPLACE PROCEDURE NonPreException_Test 
       IS

          not_null_test    EXCEPTION; -- STEP 1

          /* not_null_test는 선언된 예외 이름 
             -1400 Error 처리번호는 표준 Oracle7 Server Error 번호 */
          PRAGMA EXCEPTION_INIT(not_null_test, -1400);     -- STEP 2

        BEGIN

          DBMS_OUTPUT.ENABLE;

        -- empno를 입력하지 않아서 NOT NULL 에러 발생
        INSERT INTO emp(ename, deptno)
        VALUES('tiger', 30);

        EXCEPTION

        WHEN not_null_test THEN    -- STEP 3

            DBMS_OUTPUT.PUT_LINE('not null 에러 발생 ');

       END;
        /

-- DBMS_OUTPUT.PUT_LINE을 출력하기 위해 사용
SQL> SET SERVEROUTPUT ON ; 

-- 실행 결과 
SQL> EXECUTE NonPreException_Test;
not null 에러 발생
    

- 강좌 URL : http://www.gurubee.net/lecture/1072

- 구루비 강좌는 개인의 학습용으로만 사용 할 수 있으며, 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^

- 구루비 강좌는 서비스 제공을 위한 목적이나, 학원 홍보, 수익을 얻기 위한 용도로 사용 할 수 없습니다.

by 앗사주 [2006.06.22 19:58:31]
오라클 서버오류번호와 결합해서 사용하면 non-predefiend exception 이라고 할 수 있나요?
오라클 서버오류 번호에 이름을 주는거로 밖에 안느껴 지는데요.

미리 정의된 예외을 확인 하는 방법과,
오라클 서버오류번호와 그 번호가 의미하는 내용을 확인하는 방법좀 부탁합니다.

by 김윤경 [2007.11.12 17:55:32]
미리 정의되지 않은 에러를 오라클 에러 번호랑 연결해 사용하는 것으로 이해할게요;

by 시가있는풍경 [2007.11.14 14:25:59]
EXCEPTION
WHEN OTHERS THEN
dbms_output.put_line ('Error : '|| SQLERRM);

by 무리 [2008.04.29 23:57:21]
이거 언제 써먹지..

by 손님 [2011.01.04 19:30:24]
이거써먹을려면은 오라클 서버에서 제공하는 에러번호를 알아야겠네요.
디테일하게 오류처리할수는 있겠지만 많이 어렵네요 ㅠ_ㅠ

by 이상준 [2011.11.08 11:13:03]
잘봤습니다. NLT로 바까서 써봐야지

by 쫑 [2012.01.27 12:01:46]
PRAGMA EXCEPTION_INIT(not_null_test, -1400);
여기서 -01400 아닌가요??
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입