cnm10086 2018-12-06 05:14 采纳率: 0%
浏览 774

oracle 存储过程中调用存储过程写日志失败

存储过程向3张表插入数据,每张表开始结束时调用自治事务向log表写log,没有其他的操作。
log:a表开始插入。
a表插入操作...
log:a表插入成功.
log:b表开始插入.
b表插入操作...
log:b表插入成功.
log:c表开始插入
c表插入操作
log:c表插入成功.

这样直接调存储过程跑完的到的存储过程得到的结果是:
log:a表开始插入
log:a表插入成功
log:b表插入成功
log:c表插入成功

调试模式单步执行的结果是:
log:a表开始插入
log:a表插入成功
log:b表开始插入
log:b表插入成功
log:c表开始插入
log:c表插入成功

而单步执行的结果才是预期结果。但是主存储过程不单步执行就是第一种结果

  • 写回答

1条回答

  • lshen01 2023-03-15 18:32
    关注

    参考GPT和自己的思路:

    可能是主存储过程的执行过程中存在并发操作,导致写日志的顺序被打乱。建议在写日志的时候使用锁机制来避免并发冲突,保证日志的写入顺序与操作顺序一致。另外,可以考虑使用更先进的日志处理方式,如通过Apache Kafka等消息队列来处理日志,可以避免并发冲突问题。

    评论

报告相同问题?

悬赏问题

  • ¥15 树莓派与pix飞控通信
  • ¥15 自动转发微信群信息到另外一个微信群
  • ¥15 outlook无法配置成功
  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题