迅速かつ直接的な質問:PL/SQLからのエラーの返信
私はPL/SQLストアド・プロシージャを作成しています。それには、失敗するかもしれないexecute immediate
コールが含まれています。私はエラーを起こしたくありません。私はストアドプロシージャが正常に実行を終了し、エラーの一覧を返すようにしたいと思います。次のようなものがあります。
for vRecord in vCursor
loop
begin
execute immediate 'insert into t(a) values (' || vRecord.val || ')';
when others then
-- store the error somewhere to return it!!
end;
end loop;
私の質問は、これらのエラーを返すための推奨方法は何ですか?テーブル? outパラメータ?
ありがとうございます。
ありがとうございました!私はそれを考えました。それが最高のオプションかどうかわからない。とにかく、エラーを返すためにTABLEを使うのはオーバーキルのようです...とにかく、提案してくれてありがとう! –
エラーをログに記録するのはやめましょう、良い習慣;そして、あなたは何らかの頻度で実行されるものと仮定して、何が起こっているのかについての監査証跡を持っています。 – tbone
実際には、SQLERRMの代わりにdbms_utility.format_error_stack || dbms_utility.format_error_backtraceのようなものを使用してください。 –