Oracle SQL Developer抛出ORU-10027:当运行具有大量dbms的Store Procs时,缓冲区溢出,PUT_LINE

kfgdxczn  于 2023-11-17  发布在  Oracle
关注(0)|答案(1)|浏览(157)

我得到这个错误“ORU-10027:buffer overflow,limit of 20000 bytes”当我运行Store procs进行批量测试时,有很多打印错误。我尝试了"set serveroutput on size unlimited",但是每当运行一个store proc时,右键单击一个特定的包,然后“Run”一个store proc。它仍然会打印到一个Log窗口。
然后我在网上搜索并尝试使用DBMS输出,我将缓冲区大小设置为一个很大的数字,并单击'+'以添加针对同一数据库的连接。但是当我运行存储过程时,它仍然打印到一个新的日志窗口。
任何建议和解决方案将不胜感激。

t8e9dugd

t8e9dugd1#

一般来说,这样的选项不是最好的选择。DBMS_OUTPUT的结果在end可见,当存储过程完成它的工作时。当它工作时,你不会看到任何东西,所以如果你的意图是通过观察你打印的消息来“跟踪”执行- nope,那是行不通的。
此外,即使你设法把那么多的文本放到屏幕上,它迟早会丢失,你必须重新运行这个过程(如果可能的话)来查看你丢失的消息。
因此,换一种方法如何:不将消息打印到屏幕上,而是使用一个单独的(自治事务)过程将它们记录到一个表中。这样,您就可以在不影响主事务的情况下提交插入,只需从日志表中选择行,就可以确切地知道在什么时间发生了什么,每一步进行了多少,以及您可能想要记录的其他内容。

相关问题