• 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 ifend;
    View Code

      注意:关键字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;
    View Code

      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;
    View Code

    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;
    View Code

      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;
    View Code

      2.3 For

        [<<标签>>] for 循环计数器 in [ REVERSE ] 下限 .. 上限 loop

              循环体语句;

        end loop [<<标签>>];

    begin
        for i in 1..3 loop
            dbms_output.put_line(i);
        end loop;        
    end;
        
    View Code
  • 相关阅读:
    Orchard:如何生成模块和生成一个Content Part
    马云2011年邮件
    asp.net页面编码问题
    创建一个三D立体感的主页
    25个网页设计实例
    设计一个简洁的个人网站
    新浪微博产品交互改进[转]
    设计一个暗色调简洁漂亮的主页
    用HTML5 画LOGO
    成功企业站设计思路
  • 原文地址:https://www.cnblogs.com/ZJ199012/p/11624037.html
Copyright © 2020-2023  润新知