エラーのトレース内容を出力するには、DBMS_UTILITY.FORMAT_ERROR_BACKTRACEを使用します。
サンプルソース
例)例外内容を出力するプロシージャ
1 2 3 4 5 6 7 8 9 10 11 12 13 |
CREATE OR REPLACE PROCEDURE P_TEST IS num NUMBER; BEGIN num := 'AAA'; --エラーを強制的に起こす EXCEPTION WHEN OTHERS THEN --スタックトレースをコンソールに出力する DBMS_OUTPUT.PUT_LINE(DBMS_UTILITY.FORMAT_ERROR_BACKTRACE); END; |
DBMS_OUTPUT.PUT_LINEでコンソールに出力するには、「set serveroutput on」を実行しておく必要があります。
- 実行結果
- SQL> exec P_TEST ORA-06512: "SCOTT.P_TEST", 行6 PL/SQLプロシージャが正常に終了しました。 SQL>
解説
- エラーをキャッチしてからトレース内容を出力したい場合に便利です。
- トレース内容には行番号も含まれるため、デバッグ時に大変役立ちます。