为什么 TOAD 会弄乱 dbms_output 中的输出顺序?

Why does TOAD mess up the output order in dbms_output?

我正在使用 Oracle 10.2 和 Toad for Oracle Xpert 版本 11.5.0.56

为什么此脚本在 DMBS 输出 window 中以错误的顺序打印内容?

BEGIN
    FOR indx IN 1 .. 70
    LOOP

        dbms_output.put_line('-------------------------------------------------- TEST --------------------------------------------------');
        dbms_output.put_line('INDEX: ' || indx);                                        
        dbms_output.put_line('CREATING: 3424234 - TEST - TEST.TTEST');
        dbms_output.put_line('CREATION ORDER: ' || 10);                                                            
        dbms_output.put_line('OTHER DATA IS VALID: N');          

        IF indx = 54 THEN
            dbms_output.put_line('=======================================');
            EXIT; 
        END IF;
    END LOOP;

END;

如果您查看输出 window,它会显示以错误顺序打印的项目。按此顺序打印索引的行:

21, 22, 23, ... 54, 1, 2, ... 20

基本上它首先显示 Index = 21 的行,然后是 22,依此类推,直到它打印 Indx = 54 的行。此时它打印 Indx = 1 的行,然后是 Indx = 2,直到 20。

为什么 TOAD 没有以正确的顺序显示从 Indx = 1 到 Indx = 54 的文本?

For中间的Exit是否与此行为有关?

在 11.5.0.56 版的 TOAD 中似乎有一个 issue/bug 导致它在 DBMS 输出中打印错误的结果 window。

通过应用 11.5.2 版或更新版本的补丁程序可以修复它。