====Eine PL/SQL Routine wirft den Fehler ORU-10027 - DBMS_OUTPUT Buffer zu klein ===== Eine PL/SQL Routine funktioniert einwandfrei in SQL*Plus und wirft plötzlich in der Entwicklungsumgebung einen Fehler "**ORU-10027: buffer overflow, limit 10000 Byte**". Eine erste Analyse des eigentlichen Programmcodes ergibt keinen Fehler. Fehlerstack: ERROR at line 1: ORA-20100: An error occured. ORA-20000 ORU-10027: buffer overflow, limit of 2000 bytes ORA-06512: in "GPI.EM$TOOLS", Zeile 106 Der Fehler liegt aber gar nicht in der PLSQL Routine, sondern in der Verwendung von DBMS_OUTPUT! Der Buffer für DBMS_OUTPUT war in der Entwicklungsumgebung einfach per Default zu klein eingestellt. ===Test in SQL*Plus:=== Setzen des Buffers für DBMS_OUTPUT auf den kleinsten möglichen Wert: set serveroutput on size 2000 begin for i in 1..20 loop dbms_output.put_line(rpad('Test run ',100,'X')||':'||i); end loop; end; / ..... Test run XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX...... ..... ERROR at line 1: ORA-20000: ORU-10027: buffer overflow, limit of 2000 bytes ORA-06512: in "SYS.DBMS_OUTPUT", Zeile 32 ORA-06512: in "SYS.DBMS_OUTPUT", Zeile 97 ORA-06512: in "SYS.DBMS_OUTPUT", Zeile 112 ORA-06512: in Zeile 4 ... ===Abhilfe:=== * Setzen der Buffersize in der eigentlichen PL/SQL Routine mit ** DBMS_OUTPUT.ENABLE(1000000) ** * Setzen der Buffersize mit **set serveroutput on size 1000000**" in SQL*Plus