ORACLE SQL リファレンス(逆引き)

ORACLE SQL リファレンス

Web oracle.se-free.com
デバッグ用のメッセージを表示する(DBMS_OUTPUT)
スポンサード リンク

PL/SQLのデバッグで一番簡単なのが、DBMS_OUTパッケージを使用して、SQL/PLUSでコンソールにメッセージを表示させることだと思いますのでその方法を以下に説明します。


(1) SQL/PLUSで、コマンド”SET SERVEROUT ON”を実行する。
※SQL/PLUSを起動して1回実行すれば、再度実行する必要はない。

(2) PL/SQLブロックで、バッファを有効にする。
DBMS_OUTPUT.ENABLE(バッファサイズ);
※省略時は、2000バイト

(3)デバッグ用のメッセージを出力する。
DBMS_OUTPUT.PUT_LINE('表示させたいメッセージ');


例1) 無名ブロックでデバッグメッセージをコンソールに表示。
SQL> SET SERVEROUT ON
SQL>
SQL> begin
  2
  3  dbms_output.put_line('てすとめっせーじ');
  4
  5  end;
  6  /
てすとめっせーじ

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

SQL>


例2) ストアドファンクションからデバッグメッセージをコンソールに表示。
SQL> create or replace function get_dept(
  2    v_dept_id in char)
  3   return varchar2 as
  4
  5    v_dept_name dept.dept_name%type;
  6
  7  begin
  8
  9    dbms_output.put_line('ストアドファンクション開始!!');
 10
 11    select dept_name into v_dept_name from dept where dept_id = v_dept_id;
 12
 13    dbms_output.put_line('SELECTした部門名:' || v_dept_name);
 14    dbms_output.put_line('ストアドファンクション終了!!');
 15    return v_dept_name;
 16
 17  end get_dept;
 18  /

ファンクションが作成されました。

SQL> SET SERVEROUT ON
SQL> select get_dept('D01') from dual;

GET_DEPT('D01')
----------------------------------------------------------------------------

総務

ストアドファンクション開始!!
SELECTした部門名:総務
ストアドファンクション終了!!
SQL>

スポンサード リンク


デバッグ用のメッセージを表示する(DBMS_OUTPUT)
PL/SQLのコンパイルエラーをSQLPLUSで表示する(SHOW ERRORS)

PL/SQL へ
忘れっぽいエンジニアのオラクルSQLリファレンス TOPへ