oracle存储过程中循环调用存储过程
我在oracle存储过程中循环调用另一个存储过程被调用的存储过程中没有commit,作用是在一张表里取数据插入其他的表我发现循环完成之后只是最后一次循环的结果请问循环的时...
我在oracle 存储过程中循环调用另一个存储过程
被调用的存储过程中没有commit,作用是在一张表里取数据插入其他的表
我发现循环完成之后只是最后一次循环的结果
请问 循环的时候必须每次调用都要提交一下么?
如果在某次调用的时候出现异常怎么办? 提交的不会回滚了吧?怎么能实现任意一次调用,回滚所有操作?
我就是写了个游标 在游标里循环 其中就一个参数是从游标获得的。
如果每次调用都commit,数据都是对的 不commit只成功了最后一条
我发现调用的那个存储过程中的序列在第二次调用的时候取的值还是原来的值 没有自增
找到原因了 原来是临时表没清 commit后会自动释放临时表 没commit 数据会存在 所以导致违反约束 所以我我产生了如此错觉 展开
被调用的存储过程中没有commit,作用是在一张表里取数据插入其他的表
我发现循环完成之后只是最后一次循环的结果
请问 循环的时候必须每次调用都要提交一下么?
如果在某次调用的时候出现异常怎么办? 提交的不会回滚了吧?怎么能实现任意一次调用,回滚所有操作?
我就是写了个游标 在游标里循环 其中就一个参数是从游标获得的。
如果每次调用都commit,数据都是对的 不commit只成功了最后一条
我发现调用的那个存储过程中的序列在第二次调用的时候取的值还是原来的值 没有自增
找到原因了 原来是临时表没清 commit后会自动释放临时表 没commit 数据会存在 所以导致违反约束 所以我我产生了如此错觉 展开
3个回答
展开全部
1、没有必要每次都提交,到了CKPT,系统自动处理的
2、出现异常你可以回滚
3、提交了的不会回滚
4、调用的时候不提交,循环后统一提交
后面的问题:
关键的地方把SQL语句打印出来,根据这些SQL语句查询出数据做分析
2、出现异常你可以回滚
3、提交了的不会回滚
4、调用的时候不提交,循环后统一提交
后面的问题:
关键的地方把SQL语句打印出来,根据这些SQL语句查询出数据做分析
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1. 不需要提交,我们有个系统,调用了N多个存储过程,期间循环了无数次,一直到最后才提交了,就是为了事务处理可以全部回滚.
2. 你这里出现错误的原因应该是代码的问题,很可能你传入给存储过程的参数每次都一样,处理结果也就每次都一样,当然也有可能是其他原因,具体情况你自己单步跟踪一下看看.
2. 你这里出现错误的原因应该是代码的问题,很可能你传入给存储过程的参数每次都一样,处理结果也就每次都一样,当然也有可能是其他原因,具体情况你自己单步跟踪一下看看.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这样吧,每次插入的时候先清空相应的数据(和插入的where条件相同),然后插入,然后提交,循环一次了。还有测试的时候单步走一下,看看具体哪块的问题!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询