有什么办法冲刷Oracle中的PL/SQL的输出?
发布时间:2020-12-12 14:11:01 所属栏目:百科 来源:网络整理
导读:我有一个从脚本中调用的SQL脚本,需要很长时间才能运行。它当前在各个点包含dbms_output.put_line语句。这些打印语句的输出显示在日志文件中,但只有在脚本完成后才会显示。 有什么方法可以确保输出在脚本运行时出现在日志文件中吗? 不是真的。 DBMS_OUTPUT
我有一个从脚本中调用的SQL脚本,需要很长时间才能运行。它当前在各个点包含dbms_output.put_line语句。这些打印语句的输出显示在日志文件中,但只有在脚本完成后才会显示。
有什么方法可以确保输出在脚本运行时出现在日志文件中吗? 不是真的。 DBMS_OUTPUT的工作方式是:您的PL / SQL块在数据库服务器上执行,不与客户端交互。因此,当您调用PUT_LINE时,它只是将该文本放入服务器内存中的缓冲区。当PL / SQL块完成时,控制返回给客户端(在这种情况下,我假设SQLPlus);在那时,客户端通过调用GET_LINE从缓冲区中获取文本,并显示它。因此,使输出更频繁地出现在日志文件中的唯一方法是将大型PL / SQL块分解为多个较小的块,因此控制更频繁地返回给客户端。这可能不实用,这取决于你的代码在做什么。 其他替代方法是使用UTL_FILE写入文本文件,可以随时刷新,或使用自动事务过程将调试语句插入到数据库表中,并在每个语句之后提交。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |