plsql実行時に異常が実行を続行したい問題について

734 ワード

プロジェクトではplsqlでストレージ・プロシージャを書き込み、カーソルを巡ってテーブルにデータを挿入する問題がよく発生します.
ただし、インストールが正常であれば途中で異常が出た場合は実行しません
しかし、後続の挿入に影響を及ぼさずに異常を投げ出した記録を挿入し続ける必要がある場合もあります.
解決策はbegin endをネストすることです.異常を投げ出す可能性のあるコードをこのネストされたbegin endに入れます

declare
myexception exception;
begin
  for i in 1..10
   loop
    begin
      raise myexception;
      --insert....             
      exception
      when others
        then
          Dbms_Output.put_line('    '||'>>'||i);
          --                  
    end;
     Dbms_Output.put_line('    '||'>>'||i); 
  end loop;
end;

ok...