一个存储过程 并行的执行两次,一次是插入一次是更新数据,但是总是插入可以正常执行 但是却无法更新

一个Oracle存储过程并行的执行两次,一次是插入一次是更新数据,但是总是插入可以正常执行但是却无法更新,大侠们帮帮想想可能是什么原因?并行执行存储过程有什么常会出错的地... 一个Oracle存储过程 并行的执行两次,一次是插入一次是更新数据,但是总是插入可以正常执行 但是却无法更新,大侠们帮帮想想可能是什么原因?并行执行存储过程有什么常会出错的地方吗? 展开
 我来答
我心21依旧
2012-10-25 · TA获得超过175个赞
知道小有建树答主
回答量:304
采纳率:0%
帮助的人:194万
展开全部
你别告诉我并发执行操作的是同一个表,其实我个人感觉你插入就用存储过程来做,更新就用触发器,触发器做更新很好的。
追问
begin

记日志 -------状态默认为 0
commit;

if then

插入 ----
else
更新 ----
commit;
EXCEPTION
WHEN NO_DATA_FOUND THEN
ROLLBACK;
更新日志状态 --
commit;
WHEN OTHERS THEN
ROLLBACK;

更新日志状态 --
commit;
end P;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
good_007_2000
2012-10-29 · TA获得超过223个赞
知道答主
回答量:144
采纳率:0%
帮助的人:118万
展开全部
插入提交后才能更新,确定执行insert后commit,然后才能对插入的记录update。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
啊_科
推荐于2021-01-07 · TA获得超过268个赞
知道小有建树答主
回答量:284
采纳率:0%
帮助的人:128万
展开全部
请贴下代码。方便排查
追问
记日志 -------状态默认为 0 
commit;

if then

插入 ----
else
更新 ----
commit;
EXCEPTION

WHEN NO_DATA_FOUND THEN
ROLLBACK;
更新日志状态 --
commit;
WHEN OTHERS THEN
ROLLBACK;
更新日志状态 --
commit;
end P;
追答
1.你先把异常处理代码去掉,看执行是否正常,这样先保证,如果有异常不是被你捕获处理了。
2.你调试一下,看是否按正常逻辑走。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友53073f8
2012-11-01
知道答主
回答量:27
采纳率:0%
帮助的人:8.3万
展开全部
if conditions 后面的条件好好检查一下,是不是恒真
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式