用sqlplus命令窗口执行oracle 存储过程,关闭对话窗口后,存储过程仍然执行?
5个回答
展开全部
我测试过,如果中途中断的话,存储过程不会再执行。如果存储过程里面没有写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。其他版本就没试过了。也不知道有没有地方可以设置。
展开全部
仍然继续执行,用如下代码
declare
声明变量,就是CodeType 、input_code、cu_patient ,可对前两个直接赋值
begin
GetSampleInfo(CodeType, input_code,cu_patient) ;
end;
/
declare
声明变量,就是CodeType 、input_code、cu_patient ,可对前两个直接赋值
begin
GetSampleInfo(CodeType, input_code,cu_patient) ;
end;
/
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果结束了一般不会再执行,如果中途关闭终端,执行的内容会回滚~
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
maybe just a dead process.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如何观察到 是继续执行的?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询