prog:sql_fehler_oru-10027
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
prog:sql_fehler_oru-10027 [2013/10/21 14:49] – angelegt gpipperr | prog:sql_fehler_oru-10027 [2013/10/21 21:17] (aktuell) – gpipperr | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
+ | ====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 " | ||
+ | |||
+ | |||
+ | Eine erste Analyse des eigentlichen Programmcodes ergibt keinen Fehler. | ||
+ | |||
+ | Fehlerstack: | ||
+ | |||
+ | <code sql> | ||
+ | |||
+ | ERROR at line 1: | ||
+ | ORA-20100: An error occured. ORA-20000 | ||
+ | ORU-10027: buffer overflow, limit of 2000 bytes | ||
+ | ORA-06512: in " | ||
+ | |||
+ | </ | ||
+ | |||
+ | 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: | ||
+ | <code sql> | ||
+ | set serveroutput on size 2000 | ||
+ | |||
+ | |||
+ | begin | ||
+ | for i in 1..20 | ||
+ | loop | ||
+ | dbms_output.put_line(rpad(' | ||
+ | end loop; | ||
+ | end; | ||
+ | / | ||
+ | |||
+ | ..... | ||
+ | Test run XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX...... | ||
+ | ..... | ||
+ | |||
+ | ERROR at line 1: | ||
+ | ORA-20000: ORU-10027: buffer overflow, limit of 2000 bytes | ||
+ | ORA-06512: in " | ||
+ | ORA-06512: in " | ||
+ | ORA-06512: in " | ||
+ | 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**" | ||
prog/sql_fehler_oru-10027.txt · Zuletzt geändert: 2013/10/21 21:17 von gpipperr