存储过程同时Update 多张表问题

如下存储过程写法对吗?执行成功,没有报错,但是实际查询数据时发现数据并没有被更新,求解答,问题出在哪里呢?createorreplaceprocedureemp_role... 如下存储过程写法对吗?执行成功,没有报错,但是实际查询数据时发现数据并没有被更新,求解答,问题出在哪里呢?
create or replace procedure emp_role_disable Is
Begin
Update c_userxrole Set expiration_date=Sysdate+14,lm_user='autocim' ,lm_time =systimestamp Where upper(userid) In (Select emp_data.emp_no From emp_data Where trans_date Is Not Null);
Update c_usr_user Set is_enable=0,is_quit=1 ,LM_USER='CIM',disable_date=Sysdate Where is_enable=1 And is_quit=0 And upper(userid) Not In (Select emp_data.emp_no From emp_data);
end emp_role_disable;
说明,两个sql 拉出来直接在plsql上执行是Ok的
存储过程执行后,数据没有变化;然后我定义了一个job,周期执行这个存储过程。job执行成功,数据也更新了。。问题:存储过程不能手动执行吗?就是按F8执行,一定要其它触发执行?
展开
 我来答
下扬州啊
2013-09-12 · TA获得超过2519个赞
知道大有可为答主
回答量:4870
采纳率:40%
帮助的人:2132万
展开全部
F8只是创建或者修改了这个存储过程的内容,跟执行存储过程是两个概念
就跟你喝水一样,你把水接到杯子里,不等于你就喝到了水
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友183c468
2013-09-04 · TA获得超过209个赞
知道小有建树答主
回答量:267
采纳率:0%
帮助的人:128万
展开全部
更新完没有提交过程,你可能要加上
commit;在end emp_role_disable;之前
追问
已经加上去了,还是不行。执行后数据还是没有更新
create or replace procedure emp_role_disable Is
Begin
。。。
Commit;
end emp_role_disable;
追答
就是按F8执行,在哪里面?
似乎是你使用的环境问题。你可以尝试在SQLPLUS里
exec emp_role_disable;
能否执行成功。这样确认到底是哪儿的问题。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友455632d898
2013-09-04 · TA获得超过275个赞
知道小有建树答主
回答量:804
采纳率:0%
帮助的人:339万
展开全部
存储过程可以手动执行;
excute 存储过程名;
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式