代码之家  ›  专栏  ›  技术社区  ›  Jeff

从oracle pl/sql查看变量值

  •  2
  • Jeff  · 技术社区  · 17 年前

    我正在运行一个pl/sql块,它应该调用一个存储过程,该存储过程的输出参数应该填充pl/sql块中的变量。

    该过程进行编译,pl/sql块成功运行。但是我想检查由过程填充的变量的值。有办法输出这些值吗?

    如果有帮助的话,我用的是免费的蟾蜍。

    谢谢,

    4 回复  |  直到 17 年前
        1
  •  3
  •   darreljnz    17 年前

    你有几个选择:

    • 带dbms_输出的日志
    • 使用utl_文件登录到文件
    • 使用Oracle调试器dbms_debug

    我的偏好是使用一个相当简单的自定义日志包来记录到一个文件。在我的自定义日志记录包中,我有一个可配置的标志,可以在文件日志记录和dbms_输出日志记录之间切换。

    oracle调试api非常好,但是您肯定需要一个好的调试客户机。oracle sql developer对它有很好的支持。

    还有一个log4plsql记录器,但我没有使用它。

        2
  •  2
  •   James Curran    17 年前
    dbms_output.put_line(varHere);
    
        3
  •  0
  •   Dwayne King    17 年前

    第四个选项(我通常默认的选项)也存在…..将调试消息记录到数据库表中。这使您能够根据需要对调试消息进行排序、查询和筛选。

    正如上面提到的darreljnz,log4plsql也可能支持记录到数据库。我发现 1)DBMS U输出有太多限制 2)登录到文件需要太多的设置,如果尚未设置utl_file_dir参数,则需要重新启动数据库 3)在没有gui帮助的情况下使用dbms_debug非常麻烦(但我已经做到了)

        4
  •  0
  •   Aussie Craig    17 年前

    如果您可以下载oracle jdeveloper的副本 jDeveloper Home page 或Oracle Visual Studio加载项 VS Plugin . 两者都是免费的,并且允许您在数据库的pl/sql中调试(设置断点、检查变量…)。您还需要在数据库上有一个“调试”特权来执行此操作。但是,如果你有dba权限,你可以授予它。