例外処理ブロックでPL/SQL例外を再度発生させるにはどうすればいいですか? 質問する

例外処理ブロックでPL/SQL例外を再度発生させるにはどうすればいいですか? 質問する

いくつかのアプリケーションで使用される次の手順があります。

procedure p1
is
begin
  bla bla bla;  
end;

しかし、例外処理ブロックはありません。そのため、アプリケーションはこの機能に従って作成されました。

ここで、p1 にエラーを記録する必要があります。ただし、この手順を使用するアプリケーションには影響しないはずです。

このようなもの:

procedure p1
is
begin
  bla bla bla;

  exception when others then
    log_error(sqlcode, sqlerrm);
    raise_new_exception (sqlcode, sqlerrm);
end;

の場合にはアプリケーションエラーを発生させる最初のパラメータは [-20000, -20999] の範囲内である必要があります。したがって、例外 no_data_found が発生した場合、このエラーは発生しません。

の場合には例外初期化2 番目のパラメータは変数であってはなりません。数値リテラルである必要があります。

PS: 一時的な解決策として、私はすぐに実行する

ベストアンサー1

エラーが変わらない場合は、次のように変更します。

...
exception when others then
  log_error(sqlcode, sqlerrm);
  raise;
end;
/

これは説明されているドキュメント内

おすすめ記事