最後にエラーをチェックするストアド プロシージャがあり、エラーがある場合はロールバックを実行し、バッチ テーブルのステータスを「FAILED」に更新します。ストアド プロシージャを実行すると、「タイムスタンプの競合が発生しました」という SQLCODE 818 エラーが定期的に発生します。
バッチ テーブルのステータスを変更する update ステートメントを削除しても、エラーは発生しません。
エラーが発生しないようにこれらのアクションを実行するためのベスト プラクティスは何ですか?
コードのセクションは次のようになります。
IF v_error_count > 0 THEN
-- Batch failed
ROLLBACK;
UPDATE batch_table bt
SET bt.batch_status = 'FAILED'
WHERE batch_id = input_batch_id;
END IF;
助けてくれてありがとう。