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.