首页 > 数据库技术 > 详细

oracle的return、exit、continue的区别

时间:2021-05-19 12:54:43      阅读:19      评论:0      收藏:0      [点我收藏+]

函数、预存中遇到return就会中断整个函数、预存,return后的代码不会再执行!

exit是退出整个for循环,即结束该for循环,不执行该for循环了!

continue是退出该for循环的当前这一次,开始下一次,直到该for循环结束!

以下2个代码块都是印证return 的作用。代码块一没加“if··· then  end if;”代码块,而代码块二加上了“if··· then  end if;”代码块,两者的运行结果都是·一样的。

-----代码块一:
begin--一定要加上begin  end;因為oracle是代碼塊~~~
for ii in 1..5 loop  
  sys.dbms_output.put_line(此處是return); 
  return;
  sys.dbms_output.put_line(處於return後、當前循環里的代碼不執行!); 
end loop;
sys.dbms_output.put_line(處於return後、非循環里的代碼不執行!!);
end;
------------------------------------------------
-----代码块二:
begin
for i in 1..5 loop
  if i=2 then
    sys.dbms_output.put_line(此處是return); 
    return; 
    sys.dbms_output.put_line(處於return後、當前循環里的代碼不執行!);
  end if;  
end loop;
sys.dbms_output.put_line(處於return後、非循環里的代碼不執行!!);
end;

以上代码块一、代码块二的运行结果都是·一样的:

技术分享图片

所以,函数、预存中遇到return就会中断整个函数、预存,return后的代码不会再执行!

以下2个代码块都是印证exit 的作用。代码块一没加“if··· then  end if;”代码块,而代码块二加上了“if··· then  end if;”代码块,两者的运行结果都是·一样的。

--代码块一:
begin
for j in 1..5 loop 
  sys.dbms_output.put_line(此處是exit);
  exit;
  sys.dbms_output.put_line(處於exit後、當前循環里的代碼不執行!);   
end loop;
sys.dbms_output.put_line(處於exit後、非循環里的代碼也執行了~~);
end;
---------------------------------------------
--代码块二:
begin
for j in 1..5 loop
  if j=2 then
    sys.dbms_output.put_line(此處是exit);
    exit;
    sys.dbms_output.put_line(處於exit後、當前循環里的代碼不執行!); 
  end if; 
end loop;
sys.dbms_output.put_line(處於exit後、非循環里的代碼也執行了~~);
end;

以上代码块一、代码块二的运行结果都是·一样的:

技术分享图片

所以,exit是退出整个for循环,即结束该for循环,不执行该for循环了!

以下2个代码块都是印证continue 的作用。代码块一没加“if··· then  end if;”代码块,而代码块二加上了“if··· then  end if;”代码块,两者的运行结果是不一样的:

--代码块一
begin
  for k in 1..5 loop
    sys.dbms_output.put_line(此處是continue);
    continue;
    sys.dbms_output.put_line(處於continue後、當前循環里的代碼不執行!);
  end loop;
  sys.dbms_output.put_line(處於continue後、非循環里的代碼也執行了~~~~~);
end;

--代码块二
begin
  for k in 1..5 loop
    if k=3 then
      sys.dbms_output.put_line(此處是continue);
      continue;
      sys.dbms_output.put_line(處於continue後、當前循環里的代碼不執行!!);
    end if;
  end loop;
  sys.dbms_output.put_line(處於continue後、非循環里的代碼也執行了~~~~~);
end;

代码块一的结果:

技术分享图片

代码块二的结果:

技术分享图片

所以,continue是退出该for循环的当前这一次,开始下一次,直到该for循环结束!

 

oracle的return、exit、continue的区别

原文:https://www.cnblogs.com/168-h/p/14783999.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!