oracle pl/sql bogue: ne peut pas put_line plus de 2000 caractères

Quelqu'un d'autre a remarqué ce phénomène où dbms_output.put_line est impossible d'imprimer plus de 2000 caractères à la fois?

Script est:

set serveroutput on size 100000;

declare
    big_str varchar2(2009);
begin
    for i in 1..2009 loop
        big_str := big_str||'x';
    end loop;

    dbms_output.put_line(length(big_str));
    dbms_output.put_line(big_str);
end;

/

J'ai copié et collé à la sortie dans un éditeur de texte (Notepad++) qui m'a dit il n'y avait que 2000 caractères, pas de 2009, qui est ce que je pense doit avoir été collé. Cela arrive aussi avec quelques-uns de mes scripts de test - seulement 2000 caractères sont imprimés.

J'ai une solution pour imprimer comme ceci:

dbms_output.put_line(length(big_str));
dbms_output.put_line(substr(big_str,1,1999));
dbms_output.put_line(substr(big_str,2000));

Cela ajoute de nouvelles lignes à la sortie, il est difficile de lire le texte que vous travaillez avec est préformaté.

Quelqu'un d'autre a remarqué cela? Est-ce vraiment un bug ou d'une sorte de fonctionnalité obscure? Est-il une meilleure solution? Est-il d'autres informations sur cette?

Oracle version: 10.2.0.3.0, à l'aide de PL/SQL Developer (à partir de Allround Automation).

Jamais essayé - c'est beaucoup de sortie d'assurance de la qualité. Est-ce pour SQL dynamique?
Ce qui vous fait penser que c'est un bug? Peut-être put_line est limitée par la conception de 2000 caractères.
Je n'ai rien vu dans le put_line documentation états pas plus de 2000 caractères seront imprimés. Aussi, si il y avait une limite de 2000 caractères et je l'ai dépassé, je en droit d'attendre d'une erreur, ne pas avoir tous les caractères après 2000 être ignoré.
Poneys: je l'ai découvert lorsque j'ai remarqué que les données imprimées ne correspondent pas à ce qui avait été chargé. Je savais qu'il y avait des enregistrements dans cette table qui serait assez long, j'ai été à enquêter pour savoir combien, et obtenir des détails sur les quelques-uns qui ont été.

OriginalL'auteur FrustratedWithFormsDesigner | 2009-11-19