プライマリ・コンテンツに移動
SQL*Plus®ユーザーズ・ガイドおよびリファレンス
リリース1 (12.1)
B71396-03
目次へ移動
目次
索引へ移動
索引

前
次

SET SERVEROUT[PUT] {ON | OFF} [SIZE {n | UNL[IMITED]}] [FOR[MAT] {WRA[PPED] | WOR[D_WRAPPED] | TRU[NCATED]}]

ストアド・プロシージャの出力(DBMS_OUTPUT.PUT_LINE)またはPL/SQLブロックの出力を、SQL*Plusで表示するかどうかを制御します。DBMS_OUTPUTによる行の長さの制限は32767バイトです。

OFFを指定すると、DBMS_OUTPUT.PUT_LINEの出力が非表示になります。ONを指定すると、出力が表示されます。

ONを指定すると、以前のSET SERVEROUTPUT ON SIZE n FORMAT fのSIZEおよびFORMATが使用されるか、または現在の接続で以前にSET SERVEROUTPUTコマンドが発行されていない場合はデフォルト値が使用されます。

SIZEには、Oracle Databaseサーバーの内部バッファに格納できる出力のバイト数を設定します。デフォルトはUNLIMITEDです。nは2000以上または1,000,000以下にしてください。

SERVEROUTPUTが設定されている場合、リソースは事前に割り当てられません。パフォーマンスは低下しないため、物理メモリーを保存する場合以外は、UNLIMITEDを使用します。

各サーバー出力行は新しい出力行から開始されます。

WRAPPEDを使用可能にすると、SQL*PlusはSET LINESIZEに指定された行サイズに従ってサーバー出力を折り返し、必要に応じて新しい行を開始します。

WORD_WRAPPEDを使用可能にすると、サーバー出力の各行がSET LINESIZEで指定した行サイズに従って折り返されます。行はワード境界で改行されます。SQL*Plusは、各行を左揃えし、先行空白をすべてスキップします。

TRUNCATEDを使用可能にすると、サーバー出力の各行がSET LINESIZEで指定した行サイズになるように切り捨てられます。

UTL_FILEユーティリティおよび関連ユーティリティの使用方法の詳細は、『Oracle Database PL/SQLパッケージ・プロシージャおよびタイプ・リファレンス』を参照してください。

DBMS_OUTPUT.PUT_LINEの詳細は、『Oracle Databaseアドバンスト・アプリケーション開発者ガイド』を参照してください。

DBMS_OUTPUT.PUT_LINEを使用してPL/SQLブロック内のテキストを表示するには、次のように入力します。

SET SERVEROUTPUT ON

次に、SET SERVEROUTPUT ONを使用して匿名プロシージャを実行した結果を示します。

BEGIN
  DBMS_OUTPUT.PUT_LINE('Task is complete');
END;
/
Task is complete.
PL/SQL procedure successfully completed.

次に、SET SERVEROUTPUT ONを使用してトリガーを作成した結果を示します。

CREATE TABLE SERVER_TAB (Letter CHAR);
CREATE TRIGGER SERVER_TRIG BEFORE INSERT OR UPDATE -
OR DELETE
ON SERVER_TAB
BEGIN
DBMS_OUTPUT.PUT_LINE('Task is complete.');
END;
/
Trigger Created.
INSERT INTO SERVER_TAB VALUES ('M');
DROP TABLE SERVER_TAB; 
/* Remove SERVER_TAB from database */
Task is complete.
1 row created.

出力をWORD_WRAPPEDに設定するには、次のように入力します。

SET SERVEROUTPUT ON FORMAT WORD_WRAPPED
SET LINESIZE 20
BEGIN
  DBMS_OUTPUT.PUT_LINE('If there is nothing left to do');
  DBMS_OUTPUT.PUT_LINE('shall we continue with plan B?');
END;
/
If there is nothing
left to do
shall we continue
with plan B?

出力をTRUNCATEDに設定するには、次のように入力します。

SET SERVEROUTPUT ON FORMAT TRUNCATED
SET LINESIZE 20
BEGIN
  DBMS_OUTPUT.PUT_LINE('If there is nothing left to do');
  DBMS_OUTPUT.PUT_LINE('shall we continue with plan B?');
END;
/
If there is nothing
shall we continue wi