본문 바로가기

IT/오라클

Oracle PL/SQL 강좌 7.3. 미리 정의되지 않은 예외(Non-Predefined Exception)

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

  미리정의되지 않은 예외는 사용자가 선언절에서 예외명을 정의하고, 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-NC-SA) 라이선스에 따라 자유롭게 사용할 수 있습니다.