Plsql-dbms-output

提供:Dev Guides
移動先:案内検索

PL/SQL-DBMS出力

この章では、PL/SQLでのDBMS出力について説明します。 DBMS_OUTPUT は、出力、デバッグ情報の表示、およびPL/SQLブロック、サブプログラム、パッケージ、トリガーからのメッセージの送信を可能にする組み込みパッケージです。 このパッケージは、チュートリアル全体で既に使用しています。

データベース内のすべてのユーザーテーブルを表示する小さなコードスニペットを見てみましょう。 データベースで試して、すべてのテーブル名をリストダウンします-

BEGIN
   dbms_output.put_line  (user || ' Tables in the database:');
   FOR t IN (SELECT table_name FROM user_tables)
   LOOP
      dbms_output.put_line(t.table_name);
   END LOOP;
END;
/

DBMS_OUTPUTサブプログラム

DBMS_OUTPUTパッケージには、次のサブプログラムがあります-

S.No Subprogram & Purpose
1

DBMS_OUTPUT.DISABLE;

メッセージ出力を無効にします。

2

DBMS_OUTPUT.ENABLE(buffer_size IN INTEGER DEFAULT 20000);

メッセージ出力を有効にします。 buffer_size のNULL値は、無制限のバッファーサイズを表します。

3

DBMS_OUTPUT.GET_LINE (line OUT VARCHAR2, status OUT INTEGER);

バッファリングされた情報の1行を取得します。

4

DBMS_OUTPUT.GET_LINES (lines OUT CHARARR, numlines IN OUT INTEGER);

バッファーから行の配列を取得します。

5

DBMS_OUTPUT.NEW_LINE;

行末マーカーを配置します。

6

DBMS_OUTPUT.PUT(item IN VARCHAR2);

バッファーに部分的な行を配置します。

7

DBMS_OUTPUT.PUT_LINE(item IN VARCHAR2);

バッファーに行を配置します。

DECLARE
   lines dbms_output.chararr;
   num_lines number;
BEGIN
   -- enable the buffer with default size 20000
   dbms_output.enable;

   dbms_output.put_line('Hello Reader!');
   dbms_output.put_line('Hope you have enjoyed the tutorials!');
   dbms_output.put_line('Have a great time exploring pl/sql!');

   num_lines := 3;

   dbms_output.get_lines(lines, num_lines);

   FOR i IN 1..num_lines LOOP
      dbms_output.put_line(lines(i));
   END LOOP;
END;
/

上記のコードがSQLプロンプトで実行されると、次の結果が生成されます-

Hello Reader!
Hope you have enjoyed the tutorials!
Have a great time exploring pl/sql!

PL/SQL procedure successfully completed.