我有一些pl / sql程序可能需要几分钟的时间才能运行。在开发过程中,我添加了一些打印语句来帮助调试,并提供一些反馈和进度指标。最初我运行这些小测试集,输出几乎是即时的。现在我正在测试需要几分钟的较大的测试集来运行,我发现打印到控制台已不再适用,因为在程序结束之前没有打印任何内容。我习惯于在不缓冲其输出并立即打印的环境中工作,并为简单的调试和诊断添加简单的打印语句是常见的。
您可以使用自动事务处理将消息写入表的过程:
procedure log (p_message) is pragma autonomous_transaction; begin insert into message_log (user,datetime,message) values (user,sysdate,p_message); commit; end;
然后从另一个Oracle会话监视表。