用sqlplus命令窗口执行oracle 存储过程,关闭对话窗口后,存储过程仍然执行?

 我来答
kaiyanghao123
推荐于2016-06-18 · TA获得超过1615个赞
知道小有建树答主
回答量:1219
采纳率:66%
帮助的人:574万
展开全部

我测试过,如果中途中断的话,存储过程不会再执行。如果存储过程里面没有写commit的话数据就不会变更。

create or replace procedure t_emp(res out varchar2) is
begin
  for i in 1..100000 loop
    insert into emp(empno,ename,hiredate) values(i,'Sysuser'||to_char(i),sysdate);
    --commit;
    end loop;
   res := 'OK';
exception
   when others then
     rollback;
     res := 'NG;'||SQLERRM;
  end;
追问
那就神奇了。我这里是可以继续执行的。。。。
追答
我这里用oracle11g的。我又测试了一遍,直接关掉CMD窗口会中断程序,如之前我执行到26596,把存储过程改成从26596到100000,把commit加上,在sqlplus执行存储过程,2,3秒后关闭窗口,在后台一查,发现总共记录为46593,并没有100000。其他版本就没试过了。也不知道有没有地方可以设置。
274311341
2016-01-06
知道答主
回答量:19
采纳率:0%
帮助的人:4.2万
展开全部
仍然继续执行,用如下代码
declare
声明变量,就是CodeType 、input_code、cu_patient ,可对前两个直接赋值
begin
GetSampleInfo(CodeType, input_code,cu_patient) ;
end;
/
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
YOYOxiaozn
2015-12-19
知道答主
回答量:45
采纳率:0%
帮助的人:20.6万
展开全部
如果结束了一般不会再执行,如果中途关闭终端,执行的内容会回滚~
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
后盐无齿
2014-01-08 · TA获得超过603个赞
知道小有建树答主
回答量:378
采纳率:50%
帮助的人:146万
展开全部
maybe just a dead process.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友07553bf0
2014-01-08 · TA获得超过1986个赞
知道大有可为答主
回答量:2464
采纳率:75%
帮助的人:1870万
展开全部
如何观察到 是继续执行的?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式