【问题标题】:view values of variables from oracle PL/SQL从 oracle PL/SQL 查看变量的值
【发布时间】:2010-09-20 06:16:03
【问题描述】:

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

过程编译,PL/SQL 块成功运行。但我想检查该过程填充的变量的值。有没有办法输出这些值?

如果有帮助,我正在使用 Free TOAD。

谢谢,

【问题讨论】:

    标签: oracle plsql


    【解决方案1】:

    你有几个选择:

    • 使用 DBMS_OUTPUT 记录
    • 使用 UTL_FILE 记录到文件
    • 使用 Oracle 调试器 DBMS_DEBUG

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

    Oracle 调试 API 非常好,但您肯定需要一个好的调试客户端。 Oracle SQL Developer 对它有相当好的支持。

    还有一个log4plsql logger,但我没用过。

    【讨论】:

      【解决方案2】:
      dbms_output.put_line(varHere);
      

      【讨论】:

      • 适用于 sqlplus 但不适用于 toad。至少它不适合我。
      • 检查你的 TOAD 配置 - 你需要打开 'dbms_output' 并且你可能需要初始化 dbms_output 包(自从我做 oracle 以来已经太久了......)
      【解决方案3】:

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

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

      【讨论】:

        【解决方案4】:

        如果您可以下载 Oracle jDeveloper jDeveloper Home page 或 Oracle Visual Studio 的副本,请添加 VS Plugin。两者都是免费的,并允许您在 db 上的 PL/SQL 中调试(设置断点、检查变量等)。您还需要数据库上的“调试”权限来执行此操作。但是,如果您拥有 dba 权限,则可以授予该权限。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2015-07-08
          • 1970-01-01
          • 2011-02-03
          • 1970-01-01
          • 1970-01-01
          • 2012-03-30
          • 2018-04-12
          相关资源
          最近更新 更多