DBMS_OUTPUTパッケージは、PL/SQLブロックやサブプログラムからの出力を表示するストアド・プロシージャ群を含むパッケージである。DBMS_OUTPUTパッケージはPUBLICに対して実行権限が付与されている。したがって、すべてのユーザが実行可能である。DBMS_OUTPUTからのメッセージの出力はバッファリングされ、PL/SQLプログラムの終了後に表示される。バッファリングされたメッセージを明示的にフラッシュする方法はない。
Oracleデータベースの初期状態では、DBMS_OUTPUTパッケージからの出力は表示されないようになっている。
SQL*PlusでDBMS_OUTPUTの出力を表示させるには、SET SERVEROUTPUT ONを実行する。
SQL> SET SERVEROUTPUT ON
Oracle SQL DeveloperでDBMS_OUTPUTの出力を表示させるには、次の手順で操作を行う。
上記の操作を行った後、DBMS_OUTPUT.PUT_LINEを実行すると、「DBMS出力」ペインにDBMS_OUTPUT.PUT_LINEの出力が表示される。
DBMS_OUTPUTパッケージには次のプロシージャが含まれている。
プロシージャ | 説明 |
---|---|
DISABLE | メッセージの出力を使用禁止にする。 |
ENABLE | メッセージの出力を使用可能にする。 |
NEW_LINE | 改行する。 |
PUT | メッセージを出力する(改行なし)。 |
PUT_LINE | メッセージを出力して改行する。 |
DISABLEは、メッセージの出力を使用禁止にするプロシージャである。
DBMS_OUTPUT.DISABLE;
ENABLEは、メッセージの出力を使用可能にするプロシージャである。
DBMS_OUTPUT.ENABLE(buffer_size IN INTEGER DEFAULT 20000);
NEW_LINEは、改行を出力するプロシージャである。
DBMS_OUTPUT.NEW_LINE;
PUTは、メッセージを出力するプロシージャである。改行はされない。
DBMS_OUTPUT.PUT(item IN VARCHAR2);
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>