如何将DBMS_OUTPUT.PUT_LINE的输出重定向到文件?
我需要在pl / sql中调试以计算程序的时间,我想使用:
SELECT systimestamp FROM dual INTO time_db;
DBMS_OUTPUT.PUT_LINE('time before procedure ' || time_db);
但我不明白输出的位置以及如何将其重定向到包含我想要收集的所有数据的日志文件?
没有找到相关结果
已邀请:
10 个回复
布埃郝卞簿
不是最好的调试工具,因为大多数环境本身不使用它。但是,如果要捕获
的输出,则只需使用
程序。 这是一个小例子:
磐剩
使用自治事务允许您保留从回滚的事务(例如,在引发异常之后)产生的调试消息,如果您使用文件时会发生这种情况。 g_debugging布尔变量是一个包变量,可以默认为false,并在需要调试输出时设置为true。 当然,您需要管理该表,以便它不会永远增长!一种方法是每晚/每周运行的作业并删除任何“旧”的调试消息。
鞘垒飘
邵酮
像Toad和SQL Developer这样的IDE可以通过其他方式捕获输出,但我不熟悉如何。
感秆暴壳
磐去裸猜饲
而不是
会将输出重定向到文件: http://oreilly.com/catalog/oraclebip/chapter/ch06.html
谷靛
碧肮械淌设
;您必须声明它,并创建以下过程:
以下是如何使用它: 1)从SQL * PLUS客户端启动它:
2)在数据库服务器上,打开一个shell和 tail -f -n500 /directory/where/oracle/can/write/on/DB_server/my_output.log
悍蕾驮苇袜
其次,将代码包装在流水线函数声明中:
将所有
全部替换为
。 最后,这样称呼它:
希望能帮助到你。
笛驮型迸