oracle的return、exit、continue的区别

函数、预存中遇到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;

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

oracle的return、exit、continue的区别

所以,函数、预存中遇到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;

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

oracle的return、exit、continue的区别

所以,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;

代码块一的结果:

oracle的return、exit、continue的区别

代码块二的结果:

oracle的return、exit、continue的区别

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

 

oracle的return、exit、continue的区别

上一篇:C++从入门到秃顶?学会这三点让你直接到巅峰!!!


下一篇:吉特日化MES & SQL Server 无法执行数据库脚本