我正在运行一个应该调用存储过程的 PL/SQL 块,该存储过程的输出参数应该填充 PL/SQL 块中的变量。
过程编译,PL/SQL 块成功运行。但我想检查该过程填充的变量的值。有没有办法输出这些值?
如果有帮助,我正在使用 Free TOAD。
谢谢,
你有几个选择:
我的偏好是使用相当简单的自定义日志记录包记录到文件。在我的自定义日志记录包中,我有一个可配置的标志来在文件日志记录和 DBMS_OUTPUT 日志记录之间切换。
Oracle 调试 API 非常好,但您肯定需要一个好的调试客户端。Oracle SQL Developer 对它有相当好的支持。
还有一个 log4plsql 记录器,但我没有使用它。
dbms_output.put_line(varHere);
第四个选项(我通常默认使用的选项)也存在.....将调试消息记录到数据库表中。这使您能够根据需要对调试消息进行排序、查询和过滤。
正如上面提到的darreljnz,log4plsql 也可能支持记录到数据库。我发现 1) dbms_output 有太多限制 2) 记录到文件需要太多设置,如果尚未设置 utl_file_dir 参数,则重新启动数据库 3) 在没有 GUI 帮助的情况下使用 dbms_debug 非常麻烦(但我已经做到了)
如果您可以下载 Oracle jDeveloper jDeveloper 主页或 Oracle Visual Studio 的副本,请添加VS 插件。两者都是免费的,并允许您在 db 上的 PL/SQL 中调试(设置断点、检查变量等)。您还需要数据库上的“调试”权限来执行此操作。但是,如果您有 dba 权限,您可以授予该权限。