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