web-dev-qa-db-ja.com

SQL Developerのdbms_outputハード制限

SQL Developerに問題があります。SQL* Plusでは機能しますが、dbms_outputバッファーを1 000 000シンボルより大きく設定することはできません。このスクリプト:

SET SERVEROUTPUT ON SIZE UNLIMITED

    BEGIN
       for c in (SELECT rpad('a',1000,'a') ll from dual connect by level <=2001) loop
         dbms_output.put_line (c.ll);
       end loop;  
       dbms_output.put_line ('www');
    END;
    /  

sQL * Plusで動作しますが、以下で失敗します。

 ORA-20000:ORU-10027:バッファオーバーフロー、1000000バイトの制限
 ORA-06512: "SYS.DBMS_OUTPUT"、行32 
 ORA-06512: "SYS .DBMS_OUTPUT "、行97 
 ORA-06512:" SYS.DBMS_OUTPUT "、行112 
 ORA-06512:行3 

sQL Developerで。

SQL Developerでdbms_outputビューを使用してサイズを無制限に設定しようとしました ここで説明 に設定しましたが、同じ量の記号が印刷され、「www」行がありません。 SQL Developerのバージョンは4.03.16です。既知の問題ですか?

6
abcd134

SQL Developerでは、SET SERVEROUTPUT ON SIZE UNLIMITEDは、バッファを無制限ではなく最大値1000000に設定します(12.1.0.2.161018データベースおよびSQL Developer 4.1.5.21でテスト済み)。これはSQLトレースで簡単に確認できます。

代わりに、以下は実際にバッファを無制限に設定します:

begin
  dbms_output.enable(null);
end;
/
7
Balazs Papp