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 求chat4.0解答一道线性规划题,用lingo编程运行,第一问要求写出数学模型和lingo语言编程模型,第二问第三问解答就行,我的ddl要到了谁来求了
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥15 maple软件,用solve求反函数出现rootof,怎么办?
  • ¥65 汇编语言除法溢出问题
  • ¥15 Visual Studio问题
  • ¥20 求一个html代码,有偿
  • ¥100 关于使用MATLAB中copularnd函数的问题
  • ¥20 在虚拟机的pycharm上
  • ¥15 jupyterthemes 设置完毕后没有效果