SAK 図書館
Oracle PL/SQL 編16 - デバッグメッセージ表示、dbms_output.put_line
■DBMS_OUTPUT ・DBMS_OUTPUT パッケージは、SQL*Plus にメッセージを表示します。 PL/SQL プロックやストアドのデバッグに使用すると便利です。 但し、処理経過をリアルタイムに監視するようなメッセージ出力には使用で きません。出力バッファの表示は、PL/SQL が終了した段階でまとめて行わ れます。途中で即時表示する命令はありません。 ■enable ・put_line 等を有効にします。(既定値は enable です。) SQL*Plus で set serveroutput on コマンドを実行していない場合、バッフ ァには出力されますが、表示はされません。 dbms_output.enable(size); |_ バッファサイズ 省略値は 20000 最小値は 2000 最大値は 1000000 (in integer) ■disable ・put_line 等を無効にします。 SQL*Plus で set serveroutput on コマンドが実行されていても、バッフ ァに出力されません。 dbms_output.disable; ■put ・メッセージを出力します。(改行コードなし) dbms_output.put(msg); |_ メッセージ (in number、in varchar2、in date) ■new_line ・改行コードを出力します。 dbms_output.new_line; ■put_line ・メッセージを 1 行出力します。 dbms_output.put_line(msg); |_ メッセージ (in number、in varchar2、in date) ■get_line ・メッセージを 1 行取り出します。 dbms_output.get_line(data, stat); | |_ ステータス | 0 正常 | 1 行なし | (out integer) |_ メッセージ (out varchar2) ■get_lines ・メッセージを複数行取り出します。 dbms_output.get_lines(data, line); | |_ 取得行数 | (in out integer) |_ メッセージ (out chararr) ■エラー内容表示 set serveroutput on; declare s varchar2(40) := 'あいうえお'; i number; begin -- 意図的エラー代入 i := s; exception when OTHERS then dbms_output.put_line('-- デバッグメッセージ --'); dbms_output.put_line('SQL コード = ' || sqlcode); dbms_output.put_line('エラー内容 = ' || sqlerrm(sqlcode)); end; / -- デバッグメッセージ -- SQL コード = -6502 エラー内容 = ORA-06502: PL/SQL: 数値または値のエラー: 文字から数値への変換エラー。が発生しました ■処理経過チェック表示 set serveroutput on; declare s varchar2(40) := 'あいうえお'; i number; begin -- 処理開始 dbms_output.put_line('-- スタート --'); -- 意図的エラー代入 dbms_output.put_line('-- 代入開始 --'); i := s; dbms_output.put_line('-- 代入終了 --'); -- 処理終了 dbms_output.put_line('-- 正常終了 --'); end; / -- スタート -- -- 代入開始 -- declare * 1行でエラーが発生しました。 ORA-06502: PL/SQL: 数値または値のエラー: 文字から数値への変換エラー。が発生しました ORA-06512: 行9 ■Oracle PL/SQL 編資料
■SQL 基礎実地編資料
■SQL 基礎編資料
■SQL チューニング編資料
■PostgreSQL 編、JAVA Servlet、JSP 編資料
■MySQL 編資料