有什么办法冲刷Oracle中的PL/SQL的输出?

前端之家收集整理的这篇文章主要介绍了有什么办法冲刷Oracle中的PL/SQL的输出?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个从脚本中调用sql脚本,需要很长时间才能运行。它当前在各个点包含dbms_output.put_line语句。这些打印语句的输出显示在日志文件中,但只有在脚本完成后才会显示

有什么方法可以确保输出在脚本运行时出现在日志文件中吗?

不是真的。 DBMS_OUTPUT的工作方式是:您的PL / sql块在数据库服务器上执行,不与客户端交互。因此,当您调用PUT_LINE时,它只是将该文本放入服务器内存中的缓冲区。当PL / sql块完成时,控制返回给客户端(在这种情况下,我假设sqlPlus);在那时,客户端通过调用GET_LINE从缓冲区中获取文本,并显示它。

因此,使输出更频繁地出现在日志文件中的唯一方法是将大型PL / sql块分解为多个较小的块,因此控制更频繁地返回给客户端。这可能不实用,这取决于你的代码在做什么。

其他替代方法是使用UTL_FILE写入文本文件,可以随时刷新,或使用自动事务过程将调试语句插入到数据库表中,并在每个语句之后提交。

猜你在找的Oracle相关文章