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行并执行。 

时间: 2024-10-12 21:14:18

PL/SQL之--流程控制语句的相关文章

PL/SQL 03 流程控制

--IF语法IF condition THEN  statements;[ELSIF condition THEN  statements;][ELSE  statements;]END IF; --CASE 语法 1.在 CASE 语句中使用单一选择符进行等值比较 CASE selector  WHEN expression1 THEN sequence_of_statements1;  WHEN expression2 THEN sequence_of_statements2;  ... 

29. SQL -- T-SQL 流程控制语句

T-SQL 流程控制语句 Transact-SQL 语言提供了一些可以用于改变语句执行顺序的命令,称为流程控制语句.流程控制语句允许用户更好地组织存储过程中的语句,方便地实现程序的功能.流程控制语句与常见的程序设计语言类似,主要包含以下几种. T-SQL 的流程控制语句: IF-ELSE BEGIN-END CASE WHILE-CONTINUE-BREAK WAITFOR GOTO RETURN IFELSE 语句: 指定 Transact-SQL 语句的执行条件.如果满足条件,则在 IF 关

[推荐]ORACLE PL/SQL编程详解之三:PL/SQL流程控制语句(不给规则,不成方圆)

原文:[推荐]ORACLE PL/SQL编程详解之三:PL/SQL流程控制语句(不给规则,不成方圆) [推荐]ORACLE PL/SQL编程详解之三: PL/SQL流程控制语句(不给规则,不成方圆) ——通过知识共享树立个人品牌. 继上五篇: [顶]ORACLE PL/SQL编程详解之二:PL/SQL块结构和组成元素(为山九仞,岂一日之功) [推荐]ORACLE PL/SQL编程之四:把游标说透(不怕做不到,只怕想不到) [推荐]ORACLE PL/SQL编程之五:异常错误处理(知已知彼.百战不

PL/SQL流程控制语句

PL/SQL流程控制语句介绍PL/SQL的流程控制语句, 包括如下三类:控制语句: IF 语句循环语句: LOOP语句, EXIT语句顺序语句: GOTO语句, NULL语句①if语句 IF <布尔表达式> THEN PL/SQL 和SQL语句; ELSIF< 其它布尔表达式> THEN 其它语句; ELSIF< 其它布尔表达式> THEN 其它语句; ELSE 其它语句; END IF; 例: declare v_emp_name employees.last_nam

PL/SQL程序设计、流程控制

PL/SQL是 Procedure Language & Structured Query Language 的缩写 PL/SQL是对SQL语言存储过程语言的扩展 PL/SQL程序由三个块组成,即声明部分.执行部分.异常处理部分. 在语句块的声明部分对变量声明,声明一个变量的语法是: variable_name [ constant ] type [ not null ] [:=value]其中: variable_name 为变量名 type 为类型 value 为变量的初值 PL/SQL结构

【强烈强烈推荐】《ORACLE PL/SQL编程详解》全原创(共八篇)--系列文章导航

原文:[强烈强烈推荐]<ORACLE PL/SQL编程详解>全原创(共八篇)--系列文章导航 <ORACLE PL/SQL编程详解> 系列文章目录导航 ——通过知识共享树立个人品牌. 本是成书的,但后来做其他事了,就无偿的贡献出来,被读者夸其目前为止最“实在.经典”的写ORACLE PL/SQL编程的文章-! 觉得对你有帮助,请留言与猛点推荐,谢谢. [推荐]ORACLE PL/SQL编程详解之一:PL/SQL 程序设计简介(千里之行,始于足下) 本篇主要内容如下:第一章 PL/S

ORACLE PL/SQL编程总结(一)

----------PL/SQL 程序设计简介----------- 1.1   SQL与PL/SQL 1.1.1   什么是PL/SQL? PL/SQL是 Procedure Language & Structured Query Language 的缩写.PL/SQL是对SQL语言存储过程语言的扩展.从ORACLE6以后,ORACLE的RDBMS附带了PL/SQL.它现在已经成为一种过程处理语言,简称PL/SQL.目前的PL/SQL包括两部分,一部分是数据库引擎部分:另一部分是可嵌入到许多产

浅谈PL/SQL语言基础

在前面的学习中,我们大部分接触的都是SQL语言,但是,在实现复杂操作的时候,SQL语言就无能为力了,这时候就需要引入新的语言,PL/SQL语言就是对SQL语言的扩展,可以实现存储过程,函数等的创建.下面是我对PL/SQL语言的总结,和大家分享一下. 一.基本结构 1.PL/SQL是一种块结构的语言,它将一组语句放在一个块中,一次性发送给服务器,当PL/SQL引擎分析收到PL/SQL语句块中的内容,把其中的过程语句由PL/SQL引擎自身去执行,把PL/SQL语句块中的SQL语句交给服务器的SQL语

Oracle中PL/SQL的执行部分和各种流程控制

Oracle中PL/SQL的执行部分和异常部分 一.PL/SQL的执行部分. 赋值语句. 赋值语句分两种,一种是定义一个变量,然后接收用户的IO赋值:另一种是通过SQL查询结果赋值. 用户赋值举例: set serveroutput on; accept abc prompt '请输入abc的值'; DECLARE a int:= &abc; BEGIN dbms_output.put_line(a); END; 查询赋值举例: set serveroutput on; DECLARE str