You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Oracle SQL Developer执行存储过程遇ORU-10027缓冲区溢出求助

解决ORU-10027缓冲区溢出问题的实用方案

针对你遇到的ORU-10027错误(缓冲区溢出,限制20000字节),结合PL/SQL Developer右键Run的特性,给你几个直接有效的解决办法:

  • 放弃右键Run,改用自定义执行脚本
    右键点击包选择Run时,工具默认的执行模板不会自动带上set serveroutput on size unlimited参数,而且输出会强制打到日志窗口(工具层面的小缓冲区)。你可以手动写调用脚本:

    set serveroutput on size unlimited;
    BEGIN
      -- 替换成你的包和存储过程名
      your_target_package.your_procedure();
    END;
    /
    

    写完后按F5执行,输出会定向到DBMS Output面板,而非日志窗口,就能用上你设置的大缓冲区。

  • 调整DBMS Output面板的缓冲区设置

    1. 打开DBMS Output面板(菜单栏View -> DBMS Output)
    2. 点击面板右上角的齿轮图标(Settings),将Buffer Size拉到最大值(比如1000000字节)
    3. 确保面板已添加当前连接(点击+号选择正在使用的数据库连接),执行自定义脚本后,输出会全部显示在这里,不会触发溢出错误。
  • 临时优化存储过程的输出逻辑
    如果批量测试不需要打印每条记录的细节,可以加条件减少输出量,比如每处理N条打印一次统计:

    FOR rec IN your_cursor LOOP
      -- 业务处理逻辑
      IF MOD(rec.id, 100) = 0 THEN
        DBMS_OUTPUT.PUT_LINE('已处理第 ' || rec.id || ' 条记录');
      END IF;
    END LOOP;
    

    这样既能监控进度,又不会撑爆缓冲区。

  • 检查工具日志窗口的限制(可选)
    如果你坚持要用右键Run,可以去PL/SQL Developer的「工具 -> 首选项」里查找Log Window相关配置,尝试调大其缓冲区大小(注意:部分版本可能没有这个选项,优先用前两种方案)

内容的提问来源于stack exchange,提问作者Rich

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 19:30:55