Oracle数据库的PL/SQL的流程控制语句

流程控制之if语句:

  • declare
    str varchar2(3):='abc';
    begin
      if(str='abc') then
        dbms_output.put_line('abc');
      elsif(str='bc') then
        dbms_output.put_line('bc');              
      else  
        dbms_output.put_line('其他');
       end if;
    end;


流程控制之循环语句:

  • 简单循环:
    --循环控制,简单循环
    declare
      i number:=0;
    begin
      loop
        i:=i+1;
       dbms_output.put_line(i);
       if(i=5) then
          exit;     
       end if;
      end loop;
    end;

  • 嵌套循环:
    --循环控制,嵌套循环
    declare
    i number:=0;
    j number:=0;
    begin
     loop
       i:=i+1;
       dbms_output.put_line(i);
       exit when i=5;
       --**********************
       j:=0;
       loop
         
         j:=j+1;
         dbms_output.put_line('abc:'||j);
         exit when j=2;
         
       end loop;
          --**********************
     end loop;
     dbms_output.put_line('循环结束');
    end;
    结果如下:
    1
    abc:1
    abc:2
    2
    abc:1
    abc:2
    3
    abc:1
    abc:2
    4
    abc:1
    abc:2
    5
    循环结束
    

  • 嵌套循环之内层循环结束外层循环:
    --循环控制,嵌套循环,内层循环退出外层循环
    declare
    i number:=0;
    j number:=0;
    begin
     <<outer>>loop
       i:=i+1;
       dbms_output.put_line(i);
       exit when i=5;
       --**********************
       j:=0;
       <<inner>>loop
         
         j:=j+1;
         dbms_output.put_line('abc:'||j);
         exit outer when j=2;--这样写可以退出外层循环。
         
       end loop;
          --**********************
     end loop;
     dbms_output.put_line('循环结束');
    end;
    执行结果如下:
    1
    abc:1
    abc:2
    循环结束
    

  • for循环和while循环:
    --for循环
    
    begin
      for i in 1 .. 5 loop
        dbms_output.put_line(i);
      end loop;
    end;
    
    --while循环
    declare 
    i number:=0;
    begin
      while(i<5) loop
           dbms_output.put_line(i);
           i:=i+1;
      end loop;
    end;
    

  • 其实都是Loop end Loop;循环,重点是要掌握Loop循环。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值