Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the ultimate-member domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /ledcorps/www/wp/wp-includes/functions.php on line 6114 7.3 미리 정의되지 않은 예외(Non-Predefined Exception) – 대나무숲

7.3 미리 정의되지 않은 예외(Non-Predefined Exception)

출처 http://www.gurubee.net/lecture/1072

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

  미리정의되지 않은 예외는 사용자가 선언절에서 예외명을 정의하고, 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 에러 발생
    

답글 남기기 0

Your email address will not be published. Required fields are marked *