一个存储过程 并行的执行两次,一次是插入一次是更新数据,但是总是插入可以正常执行 但是却无法更新
一个Oracle存储过程并行的执行两次,一次是插入一次是更新数据,但是总是插入可以正常执行但是却无法更新,大侠们帮帮想想可能是什么原因?并行执行存储过程有什么常会出错的地...
一个Oracle存储过程 并行的执行两次,一次是插入一次是更新数据,但是总是插入可以正常执行 但是却无法更新,大侠们帮帮想想可能是什么原因?并行执行存储过程有什么常会出错的地方吗?
展开
4个回答
展开全部
你别告诉我并发执行操作的是同一个表,其实我个人感觉你插入就用存储过程来做,更新就用触发器,触发器做更新很好的。
追问
begin
记日志 -------状态默认为 0
commit;
if then
插入 ----
else
更新 ----
commit;
EXCEPTION
WHEN NO_DATA_FOUND THEN
ROLLBACK;
更新日志状态 --
commit;
WHEN OTHERS THEN
ROLLBACK;
更新日志状态 --
commit;
end P;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
插入提交后才能更新,确定执行insert后commit,然后才能对插入的记录update。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
请贴下代码。方便排查
追问
记日志 -------状态默认为 0
commit;
if then
插入 ----
else
更新 ----
commit;
EXCEPTION
WHEN NO_DATA_FOUND THEN
ROLLBACK;
更新日志状态 --
commit;
WHEN OTHERS THEN
ROLLBACK;
更新日志状态 --
commit;
end P;
追答
1.你先把异常处理代码去掉,看执行是否正常,这样先保证,如果有异常不是被你捕获处理了。
2.你调试一下,看是否按正常逻辑走。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
if conditions 后面的条件好好检查一下,是不是恒真
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询