我有一个存储过程,最后我检查错误,如果有错误,我执行回滚,然后将批处理表上的状态更新为“失败”。当我运行存储过程时,我经常收到 SQLCODE 818 错误,提示“发生时间戳冲突”。
当我删除更改批处理表状态的更新语句时,我没有收到错误消息。
执行这些操作的最佳做法是什么以避免出现错误?
代码部分如下所示:
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;
谢谢你的帮助。