For Oracle 10g以上的EXCEPTION TRACE~
Sample from book :
------------------------PK spec-----------------------------
CREATE OR REPLACE PACKAGE EEP.ERRORTEST
AS
PROCEDURE proc1;
PROCEDURE proc2;
PROCEDURE proc3;
END;
------------------------PK Body-----------------------------
CREATE OR REPLACE PACKAGE BODY EEP.ERRORTEST
AS
PROCEDURE proc1
IS
BEGIN
DBMs_output.put_line('running proc1');
RAISE NO_DATA_FOUND;
ND;
PROCEDURE proc2
IS
l_str VARCHAR2 (30) := 'calling proc1';
BEGIN
DBMs_output.put_line(l_str);
proc1;
END;
PROCEDURE proc3
IS
BEGIN
DBMs_output.put_line('calling proc2');
proc2;
EXCEPTION
WHEN OTHERS
THEN
DBMs_output.put_line('Error Stack at Top Level');
DBMs_output.put_line(DBMS_UTILITY.format_error_backtrace);
END;
END;
------------------------EXCEUTE-----------------------------
BEGIN
DBMS_OUTPUT.put_line('proc3→proc2→proc1');
ERRORTEST.proc3;
END;
------------------------OUTPUT-----------------------------
proc3→proc2→proc1
calling proc2
calling proc1
running proc1
Error Stack at Top Level
ORA-06512: at "EEP.ERRORTEST", line 7
ORA-06512: at "EEP.ERRORTEST", line 14
ORA-06512: at "EEP.ERRORTEST", line 20
沒有留言:
張貼留言