一个oracle存储过程的奇怪的问题??

to_beyond 2006-12-27 02:29:18
俺做了一个存储过程,调试时update表的那段代码运行正常,可到数据表中查看结果时,却发现结果并没改变,也就是说那段update语句并没有起作用!郁闷,高分求教!!
附代码:
eclare
resmoney number(12,2);
balmoney number(12,2);
crdmoney number(12,2);
reduce number(12,2);
begin
select F_MONEY into resmoney from T_RESERVE where F_ORDERID=orderid ;
if resmoney>=money then --预留表中金额大于编辑后金额时
update T_ORDERINFO set F_AREACODE=areacode,F_NUM=num,F_CONTENT=content where F_ORDERID=orderid and F_INFOTYPE=infotype;
Result:=1;
end if ;
end if ;
commit;
exception
when others then
rollback;
end ;
...全文
222 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
是的,在正常执行UPDATE之后,因为多了一个 end if ; 产生错误而转向
exception
when others then
rollback;
导致又回滚到UPDATE之前的事务状态了
xuliduo 2006-12-27
  • 打赏
  • 举报
回复
关闭回滚和异常输出~让oracle自己捕捉出来,还有,你是不是多写了个end if哦?
twomao 2006-12-27
  • 打赏
  • 举报
回复
一个if两个end if
估计有异常,回滚了
ashen926 2006-12-27
  • 打赏
  • 举报
回复
因该在end if 前提前commit,我的感觉是这样的

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧