当我对存储过程的调用失败时,我试图在Java中检索pl / sql堆栈跟踪。
我可以访问堆栈跟踪但是大小是以某种方式限制的。如何增加堆栈跟踪的最大大小?我尝试使用'DBMS_UTILITY.FORMAT_ERROR_BACKTRACE()'直接检索堆栈跟踪,但我面临同样的限制。
答案 0 :(得分:2)
不幸的是,没有办法增加跟踪深度。你必须实现自己的方式来更深入地跟踪它。要么添加整数v_step并在代码的不同部分继续增加它(如面包屑)并将其返回给调用者。或者根据调试标记继续记录日志表或UTL_FILE
中的任何PL/SQL
。
所以你要确定,直到你来到哪里。您可以在任何IDE中尝试调试器选项,例如SQL Developer
或TOAD
,前提是您不在防火墙后面。但您需要使用PL/SQL
中使用的相同参数运行JDBC
。我明白这很痛苦。祝你好运。!
编辑:令人惊讶的是,Oracle 12c附带了一个全新的UTL_CALL_STACK()来提供详细信息。