那么有可能得到当前的代码行吗?
1,2,3,4 v_variable :=(get_line or something???) and in variable are value 4?
5,6,7,8,9 v_variable :=(get_line or something???) and in variable are value 9?
我只想找到最简单的方法捕捉虫子谢谢。
1,2,3,4, code lines...
发布于 2013-12-09 12:47:33
那么有可能得到当前的代码行吗?
是的,有可能。从Oracle10g开始,可以使用$$PLSQL_LINE
查询指令返回$$PLSQL_LINE
出现的代码中的行号:
SQL> declare
2 l_cur_cl pls_integer;
3 begin
4 l_cur_cl := $$PLSQL_LINE;
5 dbms_output.put_line('Line #: '|| to_char(l_cur_cl) || chr(13)
6 || 'Current line #: '|| to_char($$PLSQL_LINE));
7 end;
8 /
输出:
Line #: 4
Current line #: 6
PL/SQL procedure successfully completed
发布于 2013-12-09 12:51:35
oracle异常处理系统可以帮助您完成所需的任务。与手动获取行号不同,您可以引发和处理用户定义的异常或系统异常,并且在异常块中使用以下代码获取发生错误的lin号。
DBMS_UTILITY.FORMAT_ERROR_BACKTRACE
有关更多信息和示例,请阅读本文。
http://www.oracle.com/technetwork/issue-archive/2005/05-mar/o25plsql-093886.html
发布于 2013-12-09 13:46:32
我只想找到最简单的方法来抓虫子
查找bug的最简单方法是单元测试。严格地使用测试驱动开发,过一段时间你就不会有太多的bug了!
互联网既不缺少说明,也不缺乏关于这两个主题的问题。例如,从以下方面开始:
https://stackoverflow.com/questions/20470870
复制相似问题