現在、一連のレコードを挿入するために使用しているプロセスは次のようなものです。
(「一連のレコード」とは、個人のレコードと住所、電話番号、またはその他の結合されたテーブルのようなものを意味することに注意してください)。
- 取引を開始します。
- 関連する一連のレコードを挿入します。
- すべてが成功した場合はコミットし、そうでない場合はロールバックします。
- 次の一連のレコードについては、手順 1 に戻ります。
このようなことをもっとすべきでしょうか?
- スクリプトの先頭でトランザクションを開始します
- レコードのセットごとにセーブ ポイントを開始します。
- 関連レコードのセットを挿入します。
- エラーが発生した場合はセーブポイントにロールバックし、すべてが成功した場合は続行します。
- スクリプトの先頭でトランザクションをコミットします。
ORA-01555 でいくつかの問題が発生し、Ask Tom の記事 (この記事など) をいくつか読んだ後、2 番目のプロセスを試してみることを考えています。もちろん、Tom が指摘するように、新しいトランザクションの開始は、ビジネス ニーズによって定義されるべきものです。2 番目のプロセスは試してみる価値がありますか、それとも悪い考えですか?