为什么TOAD会破坏dbms_output中的输出顺序?

时间:2015-02-05 21:00:50

标签: oracle toad

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

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

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;

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

  

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

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

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

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

1 个答案:

答案 0 :(得分:0)

在TOAD的11.5.0.56版本中似乎存在一个问题/错误,导致它在DBMS输出窗口中错误地打印结果。

通过应用最高版本11.5.2的补丁或获取更新的版本来解决此问题。