2

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

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

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

谢谢,

4

4 回答 4

3

你有几个选择:

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

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

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

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

于 2008-10-31T22:43:33.983 回答
2
dbms_output.put_line(varHere);
于 2008-10-31T19:53:26.650 回答
0

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

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

于 2009-02-14T20:11:23.060 回答
0

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

于 2009-02-14T20:46:42.693 回答