zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    ASP.NET MVC框架(第四部分): 处理表单编辑和提交场景 【转】
    ASP.NET MVC框架 (第二部分): URL路径选择 【转】
    ASP.NET MVC框架(第三部分): 把ViewData从控制器传到视图 【转】
    SNS介绍
    测试代码在实际类的内部写还是外部写的思考
    敏捷开发:软件与文档
    TDD是开发方法还是开发方法学?
    命名空间元素的封装性
    个人感觉
    呜呜....可惜...呜呜,也谈谈测试驱动开发
  • 原文地址:https://www.cnblogs.com/ZJ199012/p/11624037.html
Copyright © 2011-2022 走看看