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>