提问人:Rich 提问时间:10/24/2023 更新时间:10/24/2023 访问量:35
Oracle SQL Developer 抛出 ORU-10027:运行具有大量 dbms 的 Store Procs 时出现缓冲区溢出。PUT_LINE
Oracle SQL Developer throwing ORU-10027: buffer overflow when run Store Procs with a lot of dbms.PUT_LINE
问:
当我使用大量打印输出运行用于批量测试的存储过程时,我收到此错误“ORU-10027:缓冲区溢出,限制为 20000 字节”。
我试过了,但是每当右键单击特定包然后“运行”商店过程来运行商店过程时。它仍会打印到日志窗口。"set serveroutput on size unlimited"
然后我在网上搜索并尝试使用DBMS输出,我将缓冲区大小设置为一个巨大的数字,然后单击“+”以添加针对同一数据库的连接。但是当我运行存储过程时,它仍然打印到新的日志窗口。
任何建议和解决方案将不胜感激。
答:
3赞
Littlefoot
10/24/2023
#1
一般来说,这样的选择不是最好的选择。当存储过程完成其工作时,DBMS_OUTPUT的结果在末尾可见。当它工作时,你不会看到任何东西,所以如果你的目的是通过观察你打印的消息来“跟踪”执行 - 不,这是行不通的。
此外,即使您设法将这么多文本放到屏幕上,它迟早也会丢失,您必须重新运行该过程(如果可能)来查看丢失的消息。
因此,如何采用不同的方法:使用单独的(自治事务)过程将它们记录到表中,而不是将消息打印到屏幕上。这样一来,你就可以在不影响主事务的情况下提交插入,只需从日志表中选择行,就可以确切地知道在什么时间发生了什么,每一步花费了多少,以及你可能想要记录的任何其他内容。
下一个:透视未知字段值 [重复]
评论
dbms_output.enable(1000000);