Oracle DBMS_OUTPUTパッケージ

DBMS_OUTPUTパッケージは、PL/SQLブロックやサブプログラムからの出力を表示するストアド・プロシージャ群を含むパッケージである。DBMS_OUTPUTパッケージはPUBLICに対して実行権限が付与されている。したがって、すべてのユーザが実行可能である。DBMS_OUTPUTからのメッセージの出力はバッファリングされ、PL/SQLプログラムの終了後に表示される。バッファリングされたメッセージを明示的にフラッシュする方法はない。

DBMS_OUTPUTパッケージからの出力を表示させる方法

Oracleデータベースの初期状態では、DBMS_OUTPUTパッケージからの出力は表示されないようになっている。

SQL*PlusでDBMS_OUTPUTの出力を表示させるには、SET SERVEROUTPUT ONを実行する。

SQL> SET SERVEROUTPUT ON

Oracle SQL DeveloperでDBMS_OUTPUTの出力を表示させるには、次の手順で操作を行う。

  1. 「表示」メニューの「DBMS出力」を選択する。
  2. 「DBMS出力」ペインの「+」アイコン(接続のDBMS_OUTPUTを有効化)をクリックする。

上記の操作を行った後、DBMS_OUTPUT.PUT_LINEを実行すると、「DBMS出力」ペインにDBMS_OUTPUT.PUT_LINEの出力が表示される。

DBMS_OUTPUTパッケージに含まれるプロシージャ

DBMS_OUTPUTパッケージには次のプロシージャが含まれている。

DBMS_OUTPUTパッケージに含まれるプロシージャ
プロシージャ 説明
DISABLE メッセージの出力を使用禁止にする。
ENABLE メッセージの出力を使用可能にする。
NEW_LINE 改行する。
PUT メッセージを出力する(改行なし)。
PUT_LINE メッセージを出力して改行する。

DISABLE

DISABLEは、メッセージの出力を使用禁止にするプロシージャである。

DBMS_OUTPUT.DISABLE;

ENABLE

ENABLEは、メッセージの出力を使用可能にするプロシージャである。

DBMS_OUTPUT.ENABLE(buffer_size IN INTEGER DEFAULT 20000);

NEW_LINE

NEW_LINEは、改行を出力するプロシージャである。

DBMS_OUTPUT.NEW_LINE;

PUT

PUTは、メッセージを出力するプロシージャである。改行はされない。

DBMS_OUTPUT.PUT(item IN VARCHAR2);

PUT_LINE

PUT_LINEは、メッセージを出力して改行するプロシージャである。

DBMS_OUTPUT.PUT_LINE(item IN VARCHAR2);
SQL> SET SERVEROUTPUT ON
SQL> BEGIN
  2      DBMS_OUTPUT.PUT_LINE('Hello world');
  3  END;
  4  /
Hello world

PL/SQLプロシージャが正常に完了しました。

SQL>