Oracleストアドプロシージャの例外処理における問題
Oracle ストアドプロシージャーでは、`EXCEPTION` 文を使用して異常を処理し、エラーメッセージを出力できます。例:“`sqlCREATE OR REPLACE PROCEDURE my_procedure AS
— カスタム例外の宣言
my_exception EXCEPTION;
PRAGMA EXCEPTION_INIT(my_exception, -20001); — カスタム例外のエラーコードを指定
BEGIN
— ストアドプロシージャーを実行するコード
EXCEPTION
WHEN my_exception THEN
— カスタム例外の処理ロジック
DBMS_OUTPUT.PUT_LINE(‘カスタム例外: ‘ || SQLERRM);
WHEN OTHERS THEN
— その他の例外の処理ロジック
DBMS_OUTPUT.PUT_LINE(‘キャッチされていない例外: ‘ || SQLERRM);
RAISE;
END;/“`この例では、`my_exception` がカスタム例外で、`-20001` が指定されたエラーコードです。ストアドプロシージャー本体のコードでは、`EXCEPTION` 文を使用して例外がキャッチされます。`my_exception` が発生した場合は、カスタム例外の処理ロジックが実行され、例外情報が出力されます。その他の例外が発生した場合は、キャッチされていない例外情報が出力され、例外が再スローされます。また、`DBMS_OUTPUT.PUT_LINE` プロセスを使用して、出力を出力ウインドウに出力できます。ストアドプロシージャーの実行後に出力ウインドウを確認することで、例外情報を確認できます。上記の方法を使用することで、ストアドプロシージャー内で例外を出力し、適切な処理を行うことができます。