SAK 図書館

SAK Streets メインストリート 図書館・カフェ 一覧 SAK Streets 検索
| VB | SQL | Perl | PHP | ASP | JSP | C | PC | HP | FAQ | フリーソフト |

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 編資料
| VB | SQL | Perl | PHP | ASP | JSP | C | PC | HP | FAQ | フリーソフト |

SAK Streets メインストリート 図書館・カフェ 一覧 SAK Streets 検索



Copyright (C) 1999-2017 Y.SAK