Stored procedures update语句在rollback之后出现db2存储过程错误

Stored procedures update语句在rollback之后出现db2存储过程错误,stored-procedures,db2,rollback,sqlcode,Stored Procedures,Db2,Rollback,Sqlcode,我有一个存储过程,最后检查错误,如果有错误,我执行回滚,然后将批处理表上的状态更新为“失败”。当我运行存储过程时,我经常会收到一个SQLCODE 818错误,表示“发生了时间戳冲突” 删除更改批处理表状态的update语句时,不会出现错误 执行这些操作以避免出错的最佳实践是什么 代码部分如下所示: IF v_error_count > 0 THEN -- Batch 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;
感谢您的帮助。

表示DB2用于确保运行模块与预编译SQL语句时创建的DBRM版本之间的一致性的内部时间戳


您可以向DBA(或站点上的其他人)咨询,因为您必须执行的特定步骤可能会有所不同。有关一般概述,请参见IBM知识中心。

使用的隔离级别是什么?可能另一个过程正在同时修改。