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 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?