dbms_utility.format_call_stack
This Function Formats The Current Call Stack. This Can Be Used On Any Stored Procedure Or Trigger To Access The Call Stack. This Can Be Useful For Debugging.
dbms_utility.format_error_stack
This Function Formats The Current Error Stack. This Can Be Used In Exception Handlers To Look At The Full Error Stack.
dbms_utility.format_error_backtrace
This Procedure Displays The Call Stack At The Point Where An Exception Was Raised, Even If The Procedure Is Called From An Exception Handler In An Outer Scope. The Output Is Similar To The Output Of The Sqlerrm Function, But Not Subject To The Same Size Limitation.
Create Or Replace Package pkg_public_back As
Procedure p_test;
End pkg_public_back;
/
Create Or Replace Package Body pkg_public_back As
Procedure p_test3 As
a Number;
Begin
a := 0 / 0;
Exception
When Others Then
Raise;
End p_test3;
Procedure p_test2 As
Begin
p_test3;
Exception
When Others Then
Raise;
End p_test2;
Procedure p_test As
Begin
p_test2;
Exception
When Others Then
dbms_output.put_line('----format_call_stack----');
dbms_output.put_line(dbms_utility.format_call_stack);
dbms_output.put_line('-------------------------');
dbms_output.put_line('----format_error_stack----');
dbms_output.put_line(dbms_utility.format_error_stack);
dbms_output.put_line('-------------------------');
dbms_output.put_line('----format_error_backtrace----');
dbms_output.put_line(dbms_utility.format_error_backtrace);
dbms_output.put_line('-------------------------');
End p_test;
End pkg_public_back;
/
----format_call_stack----
----- PL/SQL Call Stack -----
object line object
handle number name
32A86CF4 25 package body SCOTT.PKG_PUBLIC_BACK
3297A3D0 2 anonymous block
-------------------------
----format_error_stack----
ORA-01476: 除数为 0
-------------------------
----format_error_backtrace----
ORA-06512: 在 "SCOTT.PKG_PUBLIC_BACK", line 16
ORA-06512: 在 "SCOTT.PKG_PUBLIC_BACK", line 21
-------------------------