不是真的。 DBMS_OUTPUT的工作方式是:您的PL / sql块在数据库服务器上执行,不与客户端交互。因此,当您调用PUT_LINE时,它只是将该文本放入服务器内存中的缓冲区。当PL / sql块完成时,控制返回给客户端(在这种情况下,我假设sqlPlus);在那时,客户端通过调用GET_LINE从缓冲区中获取文本,并显示它。
因此,使输出更频繁地出现在日志文件中的唯一方法是将大型PL / sql块分解为多个较小的块,因此控制更频繁地返回给客户端。这可能不实用,这取决于你的代码在做什么。
其他替代方法是使用UTL_FILE写入文本文件,可以随时刷新,或使用自动事务过程将调试语句插入到数据库表中,并在每个语句之后提交。