SQL*Plus > SET SERVEROUTPUT

SERVEROUTPUT システム変数

SERVEROUTPUT は DBMS_OUTPUT による PL/SQL の標準出力を非表示にするか、出力を許可して任意にバッファサイズを設定する。

  • 短縮形は SERVEROUT
  • デフォルト値 OFF

SET SERVEROUTPUT コマンド

SET SERVEROUTPUT コマンドの構文

SET SERVEROUTPUT ON [SIZE n]
SET SERVEROUTPUT ON [SIZE n] [ FORMAT 表示制御オプション ]
SET SERVEROUTPUT OFF
SET SERVEROUTPUT ON UNLIMITED  (Oracle 10g R2〜)

短縮形

SET SERVEROUT ON [SIZE n]
SET SERVEROUT ON [SIZE n] [ FORMAT 表示制御オプション ]
SET SERVEROUT OFF
SET SERVEROUT ON UNLIMITED  (Oracle 10g R2〜)

デフォルト

SET SERVEROUTPUT OFF

SIZE n の n に指定できるバッファのサイズは 2000〜1000000 バイトまで設定することが可能。(デフォルト 2000)
Oracle 10g R2 以上の場合には UNLIMITED またはサイズを指定しないことでデフォルトのバッファサイズは無制限となる。 あえて上限を設定すると 1000000(1メガバイト弱)が上限なのは同じ。

表示制御オプションは、表示テキストが LINESIZE システム変数による行のサイズの設定値を超過した場合の制御

表示制御オプションに指定できるキーワードは以下のとおり

  • WRAPPED / 短縮形:WRAP
  • WORD_WRAPPED / 短縮形:WOR
  • TRUNCATED / 短縮形:TRU
WRAPPED
行サイズを超過する場合に文字ベースで折り返しを行なう。(デフォルト)
WORD_WRAPPED
行サイズを超過する場合に単語ベースで折り返しを行なう。
TRUNCATED
行サイズを超過した部分は切り捨てされる。

SERVEROUTPUT の FORMAT オプション設定例

行サイズを 15 バイト(日本語でも泣き別れは発生しない)

SQL> SET LINESIZE 15
SQL> -- 文字ベースの折り返し
SQL> SET SERVEROUTPUT ON FORMAT WRAPPED
SQL> call dbms_output.put_line('1234567890 1234567890');
1234567890 1234
567890
 
SQL> -- 単語ベースの折り返し(半角・全角空白)
SQL> SET SERVEROUTPUT ON FORMAT WORD_WRAPPED
SQL> call dbms_output.put_line('1234567890 1234567890');
1234567890
1234567890
 
SQL> -- 切り捨て
SQL> SET SERVEROUTPUT ON FORMAT TRUNCATED
SQL> call dbms_output.put_line('1234567890 1234567890');
1234567890 1234
 
SQL>


日本オラクル
■ 日本オラクル 株式会社
■ オラクルマスター資格 (オラクルマスターとは
■ Oracle Web セミナー