oracle在执行过程中如何快速的定位到哪一行 存储过程代码出错
CREATE OR REPLACE Function Geterrmsg(Functionname Varchar2 Default Null)
Return Varchar2 Is
--Result Varchar2;
Av_Err Varchar2(1000);
Begin
If Functionname Is Null Then
Av_Err := Substrb(Dbms_Utility.Format_Error_Backtrace(), -lengthb(Dbms_Utility.Format_Error_Backtrace()) + 11);
Else
Av_Err := Replace(Substrb(Dbms_Utility.Format_Error_Backtrace(), -lengthb(Dbms_Utility.Format_Error_Backtrace()) + 11), '", line', '.' ||
Functionname ||
'", line');
End If;
Av_Err := Replace(Av_Err || Dbms_Utility.Format_Error_Stack(), Chr(10), ' ');
Return(Av_Err);
End Geterrmsg;
在数据库中创建以上函数,在exception 里面调用 geterrmsg即可获得pl/sql 哪行代码出错