콘텐츠로 이동

DBMS UTILITY

DBMS_UTILITY#

DBMS_UTILITY 패키지는 다양한 유틸리티 서브프로그램을 제공한다. DBMS_UTILITY 패키지를 구성하는 프로시저와 함수는 아래의 표와 같다.

프로시저 및 함수 설명
FORMAT_CALL_STACK 호출 시점의 스택 정보를 가져온다.
FORMAT_ERROR_BACKTRACE 예외가 발생한 시점의 스택 정보를 가져온다.
FORMAT_ERROR_STACK FORMAT_ERROR_BACKTRACE 함수와 동일한 정보를 가져온다.

FORMAT_CALL_STACK#

호출 시점의 스택 정보를 문자열로 가져오는 함수이다.

구문#

VARCHAR variable := DBMS_UTILITY.FORMAT_CALL_STACK;

결과값#

호출 시점의 스택 정보를 반환한다.

예외#

예외를 발생시키지 않는다.

예제#

iSQL> create or replace procedure proc1
is
  a integer;
begin
  a := 1;
  println( dbms_utility.format_call_stack );
end;
/
Create success.

iSQL> create or replace procedure proc2 as begin
  proc1;
end;
/
Create success.

iSQL> exec proc2;
object     line       object
handle     number     name
6261376    6          procedure "SYS.PROC1"
6258720    2          procedure "SYS.PROC2"
Execute success.

FORMAT_ERROR_BACKTRACE#

예외가 발생한 시점의 스택 정보를 문자열로 가져오는 함수이다. 예외가 발생하지 않았다면 NULL 값을 가져온다.

구문#

VARCHAR variable := DBMS_UTILITY.FORMAT_ERROR_BACKTRACE;

결과값#

예외가 발생한 시점의 스택 정보를 반환한다. 예외가 발생하지 않았다면 NULL을 반환한다.

예외#

예외를 발생시키지 않는다.

예제#

iSQL> create or replace procedure proc1
is
  a integer;
begin
  a := 'aaaaa';
end;
/
Create success.

iSQL> create or replace procedure proc2 as begin
  proc1;
exception
when others then
  println( dbms_utility.format_error_backtrace );
end;
/
Create success.

iSQL> exec proc2;
ERR-21011 : Invalid literal
at "SYS.PROC1", line 5
at "SYS.PROC2", line 2
Execute success.