제44장 DBMS_UTILITY

내용 목차

44.1. 개요
44.2. 타입
44.2.1. UNCL_ARRAY
44.3. 프러시저와 함수
44.3.1. COMMA_TO_TABLE
44.3.2. CURRENT_INSTANCE
44.3.3. FORMAT_CALL_STACK
44.3.4. FORMAT_ERROR_BACKTRACE
44.3.5. FORMAT_ERROR_STACK
44.3.6. GET_HASH_VALUE
44.3.7. GET_PARAMETER_VALUE
44.3.8. GET_TIME

본 장에서는 DBMS_UTILITY 패키지의 기본 개념과 패키지 내의 프러시저와 함수를 사용하는 방법을 설명한다.

DBMS_UTILITY은 여러 가지 유용한 기능들을 제공한다.

본 절에서는 DBMS_UTILITY 패키지에서 제공하는 별도 정의된 타입들을 알파벳 순으로 설명한다.

본 절에서는 DBMS_UTILITY 패키지에서 제공하는 프러시저와 함수를 알파벳 순으로 설명한다.

BACKTRACE 에러 메시지 문자열을 반환하는 함수이다. 반환 문자열이 712bytes를 초과하는 경우 원하는 결과를 얻지 못할 수 있다.

FORMAT_ERROR_BACKTRACE 함수의 세부 내용은 다음과 같다.

  • 프로토타입

    DBMS_UTILITY.FORMAT_ERROR_BACKTRACE 
    RETURN VARCHAR2;
  • 예제

    CREATE OR REPLACE PROCEDURE BACKTRACE_EXAMPLE_PR0
    IS
        variable positive;
    BEGIN
        variable := -1;
    END;
    /
    
    CREATE OR REPLACE PROCEDURE BACKTRACE_EXAMPLE_PR1 IS
    BEGIN
      BACKTRACE_EXAMPLE_PR0 ();
    END;
    /
    
    CREATE OR REPLACE PROCEDURE BACKTRACE_EXAMPLE_PR2 IS
    BEGIN
      BACKTRACE_EXAMPLE_PR1 ();
    END;
    /
    
    CREATE OR REPLACE PROCEDURE BACKTRACE_EXAMPLE_PR3 IS
    BEGIN
      BACKTRACE_EXAMPLE_PR2 ();
    END;
    /
    
    CREATE OR REPLACE PROCEDURE BACKTRACE_EXAMPLE_PR4 IS
      BEGIN BACKTRACE_EXAMPLE_PR3 ();
    END;
    /
    
    CREATE OR REPLACE PROCEDURE BACKTRACE_EXAMPLE_PR5 IS
      BEGIN BACKTRACE_EXAMPLE_PR4 ();
    END;
    /
    
    CREATE OR REPLACE PROCEDURE BACKTRACE_EXAMPLE_PR6 IS
    BEGIN
      BACKTRACE_EXAMPLE_PR5 ();
    EXCEPTION
      WHEN OTHERS THEN
        DBMS_OUTPUT.PUT_LINE (DBMS_UTILITY.FORMAT_ERROR_BACKTRACE() );
    END;
    /
    
    begin
        BACKTRACE_EXAMPLE_PR6 ();
    end;
    /
    
    -- TBR-15163: Unhandled exception at SYS.BACKTRACE_EXAMPLE_PR0,  line 5.   
    -- TBR-15163: Unhandled exception at SYS.BACKTRACE_EXAMPLE_PR1,  line 3.   
    -- TBR-15163: Unhandled exception at SYS.BACKTRACE_EXAMPLE_PR2,  line 3.   
    -- TBR-15163: Unhandled exception at SYS.BACKTRACE_EXAMPLE_PR3,  line 3.   
    -- TBR-15163: Unhandled exception at SYS.BACKTRACE_EXAMPLE_PR4,  line 2.   
    -- TBR-15163: Unhandled exception at SYS.BACKTRACE_EXAMPLE_PR5,  line 2.   
    -- TBR-15163: Unhandled exception at SYS.BACKTRACE_EXAMPLE_PR6,  line 3.