我正在研究一些旧的PL / SQL代码,我正在寻找一种工具来显示调用层次结构,就像我对Eclipse和Java代码一样。
例如,如果我有以下代码:
create or replace package body pkgA as
procedure foobar is begin
lambda(1);
end;
procedure lambda(a NUMBER) is begin
pkgB.test();
end;
end pkgA;
/
create or replace package body pkgB as
procedure test is begin
select 1 from dual;
end;
end pkgB;
/
我想要这棵树:
pkgB.test
pkgA.lambda
pkgA.foobar
注意:我正在使用Toad 9,但我没有看到这样的功能(好吧,除非我需要寻找外键的参考树之类的东西)。
此外,我正在寻找一种静态分析工具而不是动态分析工具,或者暗示我执行代码的工具。
答案 0 :(得分:0)
我认为调用此更好的包过程是:dbms_utility.format_error_backtrace
所以你要使用DBMS_OUTPUT.PUT_LINE(dbms_utility.format_error_backtrace); 我将这些放在我的异常处理程序中进行测试(直到我有一个代码模板将其丢弃)。我还输出了指令:
所以它会返回如下结果:
EXCEPTION IN aeo_misc_tools.cursor_to_listV2 - -900: ORA-00900: invalid SQL statement
EXCEPTION IN my test script - -900: ORA-00900: invalid SQL statement
Error stack at top level:
ORA-06512: at "AEO.AEO_MISC_TOOLS", line 805
ORA-06512: at line 8
它不会像您指定的那样以树格式格式化错误,但它会完成工作,因此您可以在正确的行上找到错误。
答案 1 :(得分:0)
您可以使用Visual-Expert的调用层次结构,此工具可以分析PL代码并向您显示调用函数