PL/SQL流程控制语句(2)

declare
    v_i int := 2;
    v_j int := 2;
    v_flag boolean := false;
begin
    while v_i < 100 loop       
        v_j := 2;
        while  v_j<sqrt(v_i) loop
            if mod(v_i,v_j) = 0 then
              v_flag := true;
              exit;
            end if;
          v_j := v_j + 1;
        end loop;       
        if v_flag = false then
          dbms_output.put_line(v_i||',是素数');
        end if;     
        v_flag := false; 
        v_i := v_i +1;   
    end loop; 
end;

④标号和GOTO
PL/SQL中GOTO语句是无条件跳转到指定的标号去的意思。语法如下:
GOTO  label;
. . .  . . .
<<label>> /*标号是用<<>>括起来的标识符*/

例:打印1——100的自然数,当打印到50时,跳出循环,输出“打印结束”
(方法一)
begin
  for i in 1..100 loop
      dbms_output.put_line(i);
      if(i = 50) then
          goto label;
      end if;
  end loop;
     
  <<label>>
  dbms_output.put_line('打印结束');

end;
(方法二)
begin
  for i in 1..100 loop
      dbms_output.put_line(i);
      if(i mod 50 = 0) then
          dbms_output.put_line('打印结束');
          exit;
      end if;
  end loop;
end;

Oracle--plsql复合数据类型

--------------------------------------分割线 --------------------------------------

rlwrap - 解决Linux下SQLPLUS退格、上翻键乱码问题

SQLPLUS spool 到动态日志文件名

Oracle SQLPLUS提示符设置

通过设置SQLPLUS ARRAYSIZE(行预取)加快SQL返回速度

PL/SQL Developer实用技巧分享

--------------------------------------分割线 --------------------------------------

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/c8b63a3f954822339bb928c6831b433e.html