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 サブプログラムと目的
1

DBMS_OUTPUT.DISABLE;

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

2

DBMS_OUTPUT.ENABLE(buffer_size IN INTEGER DEFAULT 20000);

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

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.