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表插入成功

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

参考GPT和自己的思路:

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