zoukankan      html  css  js  c++  java
  • PL/SQL之--流程控制语句

    一、简介

      像编程语言一样,oracle PL/SQL也有自己的流程控制语句。通过流程控制语句,我们可以在PL/SQL中实现一下比较复杂的业务逻辑操作。而无需到程序中去控制,在一定程度上提高了效率,这也是PL/SQL的强大之处。PL/SQL流程控制语句有如下几种:

    • 控制语句: 包括IF 语句、CASE语句
    • 循环语句: 包括LOOP语句, WHILE语句、FOR语句
    • 顺序语句: 包括GOTO语句

    二、语句种类

      1、控制语句

        a、IF语句

           语法如下:

            IF 条件语句 TEHN 执行语句

            ELSIF 条件语句 TEHN 执行语句

            ELSE 执行语句

            END IF;

          示例如下:

    DECLARE
        i number;
        str VARCHAR2(18) := 'b';
    BEGIN
        --数字判断
        if(i = 6) THEN    
                NULL; -- 如果什么都不做建议写null,保证语句的完整性
        ELSIF(i is null) THEN
             dbms_output.put_line('null');
        ELSE
            dbms_output.put_line('null');
        END IF;
        
        --    字符串判断
        if(str = 'a') THEN
            dbms_output.put_line('if');
        ELSIF (str = 'b') THEN
            dbms_output.put_line('elsif');
        ELSE
            dbms_output.put_line('else');
        END IF;
    END;

        b、CASE语句

          语法如下:

          1、变量判断

            CASE 变量

            WHEN 值 THEN 执行语句

            WHEN 值 THEN 执行语句

                       END CASE;

                     2、表达式判断

           CASE

           WHEN 表达式 TEHN 执行语句

           WHEN 表达式 TEHN 执行语句

                        END CASE;

          示例代码如下:

    DECLARE
        str VARCHAR2(18) := 'B';
        num NUMBER := 60;
        strresult VARCHAR2(10);
        numresult VARCHAR2(10);
    BEGIN
        -- 变量判断
        CASE str    
            WHEN 'A' THEN strresult := '优秀';
            WHEN 'B' THEN strresult := '良好';
            WHEN 'C' THEN strresult := '合格';
            WHEN 'D' THEN strresult := '不及格';
        END CASE;
        --表达式判断
        CASE
            WHEN num < 60 THEN numresult := '不及格';
            WHEN num < 70 THEN numresult := '合格';
            WHEN num < 70 THEN numresult := '良好';
            WHEN num < 70 THEN numresult := '优秀';
        END CASE;
        
        dbms_output.put_line(strresult);
        dbms_output.put_line(numresult);
    END;

      2、循环语句

        a、LOOP语句

          语法如下:

           LOOP

           执行语句

           EXIT WHEN 条件      

           END LOOP;

          示例代码:

    DECLARE
        i NUMBER := 0 ;
    BEGIN
        LOOP 
            i := i + 1 ; 
            dbms_output.put_line (i) ; 
            EXIT WHEN i = 5 ;
        END LOOP ;
    END ;

        b、WHILE语句

          语法如下:

           WHILE 条件 LOOP

           执行语句

           END LOOP;

    -- 打印i每次增加后的值
    DECLARE
        i NUMBER := 0 ;
    BEGIN
        WHILE i < 5 LOOP 
            i := i + 1 ; 
            dbms_output.put_line ('i:' || i) ;
        END LOOP ;
    END ;

        c、FOR语句

                  语法如下:

          FOR 变量 IN (REVERSE) 数字 .. 数字 LOOP

          执行语句

          END LOOP;

         加上REVERSE就是数字的逆序。

         示例代码如下:

    -- index 是for开始就定了的
    BEGIN
        -- 打印1到5之前的数
        FOR i IN 1 .. 5 LOOP 
            dbms_output.put_line ('i:' || i) ;
        END LOOP ; 
        -- 打印5-到20的数,逆序打印
        FOR j IN REVERSE 5 .. 20 LOOP 
            dbms_output.put_line ('j:' || j) ;
        END LOOP ;
    END ;

      3、顺序语句

        a、GOTO语句

          语法如下:

          GOTO label;

          GOTO语句一般都是由某行跳到另外一行。

           示例代码如下:

     1 DECLARE
     2     i NUMBER := 1 ;
     3 BEGIN
     4     loop 
     5         dbms_output.put_line (i) ; 
     6         i := i + 1 ;
     7     IF i = 10 THEN
     8         GOTO label ;
     9     END IF ;
    10 END loop ;
    11     << label >> 
    12     dbms_output.put_line ('label') ;
    13 END;

           本例子就i一直循环加一,当i等于10时,跳出循环,跳到第11行并执行。 

  • 相关阅读:
    「小程序JAVA实战」小程序视频封面处理(48)
    「小程序JAVA实战」小程序视频处理工具ffmpeg(47)
    「小程序JAVA实战」小程序上传短视频(46)
    微信小程序跳转navigateTo与redirectTo
    微信小程序中this关键字使用技巧
    ***电商数据库设计参考:ecshop数据库+订单表结构等
    MYSQL中'TYPE=MyISAM'错误的解决方案
    PHP实现执行定时任务的几种思路详解
    PHP定时器实现每隔几秒运行一次
    ***LINUX添加PHP环境变量:CentOS下将php和mysql命令加入到环境变量中
  • 原文地址:https://www.cnblogs.com/always-online/p/3974946.html
Copyright © 2011-2022 走看看