0
我有一個存儲過程,最後檢查錯誤,如果有錯誤,我執行回滾,然後將批處理表上的狀態更新爲'FAILED'。當我運行存儲過程時,我經常得到一個SQLCODE 818錯誤,說有'發生了時間戳衝突'。更新語句跟隨回滾時db2存儲過程錯誤
當我刪除更改批處理表狀態的更新語句時,我不會收到錯誤。
執行這些操作的最佳做法是什麼,以避免發生錯誤?
部分代碼如下所示:
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;
感謝您的幫助。
什麼是隔離級別使用?可能另一個進程正在同時進行修改。 – AngocA