Oracle之PL/SQL流程控制
1、条件分支
1.1、IF语法
  begin
      if 条件1 then 执行1
      elsif 条件2 then 执行2
      else 执行3
      end if;
  end;
 
declare --emp表中记录数 v_count number; begin select count(1) into v_count from emp; if v_count>20 then dbms_output.put_line('表中记录数超过20条,为:'||v_count); elsif v_count>=10 then dbms_output.put_line('表中记录数在10到20之间,为:'||v_count) else dbms_output.put_line('表中记录数小于10条,为:'||v_count) end if; end;
注意:关键字elsif不是elseif
1.2 Case 语法
  case 条件表达式
      WHEN 条件表达式结果1 THEN 
            语句1
      WHEN 条件表达式结果2 THEN
            语句2
          ......
     WHEN 条件表达式结果n THEN
            语句n
    [else 条件表达式结果]
  end case;
 
declare v_name varchar2(20); begin v_name:='zhangsan'; case v_name when 'zhangsan' then dbms_output.put_line('张三'); when 'lisi' then dbms_output.put_line('李四'); else dbms_output.put_line('无法找到改名称'); end;
  case
     WHEN 条件表达式1 THEN
         语句1
      WHEN 条件表达式2 THEN
         语句2
      ......
      WHEN 条件表达式n THEN 
        语句n
      [else 语句]
  end case;
 
declare v_name varchar2(20); begin v_name:='zhangsan'; case when v_name='zhangsan' then dbms_output.put_line('张三'); when v_name='lisi' then dbms_output.put_line('李四'); else dbms_output.put_line('无法找到改名称'); end;
2、循环
2.1 Loop
begin
loop
exit when 执行2 退出循环条件
end loop;
 
declare num number:=1; begin loop exit when num>10 dbms_output.put_line(num); num := num+1; end loop; end;
2.2 While
while <布尔表达式> loop
循环体语句;
end loop;
 
declare flag boolean:=TRUE; begin while flag loop dbms_output.put_line ('Hello World!'); flag:=FALSE; end loop; end;
2.3 For
[<<标签>>] for 循环计数器 in [ REVERSE ] 下限 .. 上限 loop
循环体语句;
end loop [<<标签>>];
 
begin for i in 1..3 loop dbms_output.put_line(i); end loop; end;
posted on 2019-10-05 10:14 lovezj9012 阅读(200) 评论(0) 收藏 举报
 
                    
                 
 
                
            
         
 浙公网安备 33010602011771号
浙公网安备 33010602011771号