前回例外処理を書いたので、その流れで
エラーのデバッグ等に関しても説明していく。
基本的には前回の例外処理の際にも記載した
DBMS_OUTPUT.PUT_LINE('DEBUG');
を利用してコンソールやlog上に任意のデバッグ文字を出力することで
どのタイミングまでの処理が実行できているのかなどの判断をしていく。
もちろんの事、変数などの中身を出力することができるので、
DECLARE
TEST NVARCHAR2(300);
--変数にデータベースの中身を入れ込むようなSQLを用意する
CURSOR cur IS
SELECT *
FROM XXX ;
BEGIN
OPEN cur;
LOOP FETCH cur INTO row;
EXIT WHEN cur%NOTFOUND;
TEST := row.AAA;
DBMS_OUTPUT.PUT_LINE(TEST);
END LOOP;
CLOSE cur;
END;
上記のような変数を出力するSQLも実行可能である
※上記のような場合だと出力文字列の長さ次第でエラーになるので
タイミングは注意。
UTL_FILEなどで出力するタイミングで
出力データが何処までできているのか?など
タイミングを見極めてデバッグをはさまないと無駄足になる可能性がある。