一、简介

  像编程语言一样,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;

      示例如下:

  1. DECLARE
  2. i number;
  3. str VARCHAR2(18) := 'b';
  4. BEGIN
  5. --数字判断
  6. if(i = 6) THEN
  7. NULL; -- 如果什么都不做建议写null,保证语句的完整性
  8. ELSIF(i is null) THEN
  9. dbms_output.put_line('null');
  10. ELSE
  11. dbms_output.put_line('null');
  12. END IF;
  13.  
  14. -- 字符串判断
  15. if(str = 'a') THEN
  16. dbms_output.put_line('if');
  17. ELSIF (str = 'b') THEN
  18. dbms_output.put_line('elsif');
  19. ELSE
  20. dbms_output.put_line('else');
  21. END IF;
  22. END;

    b、CASE语句

      语法如下:

      1、变量判断

        CASE 变量

        WHEN 值 THEN 执行语句

        WHEN 值 THEN 执行语句

END CASE;

2、表达式判断

       CASE

       WHEN 表达式 TEHN 执行语句

       WHEN 表达式 TEHN 执行语句

END CASE;

      示例代码如下:

  1. DECLARE
  2. str VARCHAR2(18) := 'B';
  3. num NUMBER := 60;
  4. strresult VARCHAR2(10);
  5. numresult VARCHAR2(10);
  6. BEGIN
  7. -- 变量判断
  8. CASE str
  9. WHEN 'A' THEN strresult := '优秀';
  10. WHEN 'B' THEN strresult := '良好';
  11. WHEN 'C' THEN strresult := '合格';
  12. WHEN 'D' THEN strresult := '不及格';
  13. END CASE;
  14. --表达式判断
  15. CASE
  16. WHEN num < 60 THEN numresult := '不及格';
  17. WHEN num < 70 THEN numresult := '合格';
  18. WHEN num < 70 THEN numresult := '良好';
  19. WHEN num < 70 THEN numresult := '优秀';
  20. END CASE;
  21.  
  22. dbms_output.put_line(strresult);
  23. dbms_output.put_line(numresult);
  24. END;

  2、循环语句

    a、LOOP语句

      语法如下:

       LOOP

       执行语句

       EXIT WHEN 条件      

       END LOOP;

      示例代码:

  1. DECLARE
  2. i NUMBER := 0 ;
  3. BEGIN
  4. LOOP
  5. i := i + 1 ;
  6. dbms_output.put_line (i) ;
  7. EXIT WHEN i = 5 ;
  8. END LOOP ;
  9. END ;

    b、WHILE语句

      语法如下:

      WHILE 条件 LOOP

       执行语句

       END LOOP;

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

    c、FOR语句

语法如下:

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

      执行语句

      END LOOP;

     加上REVERSE就是数字的逆序。

     示例代码如下:

  1. -- index for开始就定了的
  2. BEGIN
  3. -- 打印15之前的数
  4. FOR i IN 1 .. 5 LOOP
  5. dbms_output.put_line ('i:' || i) ;
  6. END LOOP ;
  7. -- 打印5-到20的数,逆序打印
  8. FOR j IN REVERSE 5 .. 20 LOOP
  9. dbms_output.put_line ('j:' || j) ;
  10. END LOOP ;
  11. 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行并执行。 

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

  1. Sql Server 流程控制语句

    T-SQL中用来编写流程控制模块的语句有:BEGIN...AND语句.IF...ELSE语句.CASE语句.WHILE语句.GOTO语句.BREAK语句.WAITFOR语句和RETURN语句. 批处理 ...

  2. PL/SQL 03 流程控制

    --IF语法IF condition THEN  statements;[ELSIF condition THEN  statements;][ELSE  statements;]END IF; -- ...

  3. PL/SQL流程控制语句

    PL/SQL流程控制语句介绍PL/SQL的流程控制语句, 包括如下三类:控制语句: IF 语句循环语句: LOOP语句, EXIT语句顺序语句: GOTO语句, NULL语句①if语句 IF < ...

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

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

  5. oracle数据库之PL/SQL 流程控制语句

    介绍 PL/SQL 的流程控制语句, 包括如下三类: 1.控制语句: IF 语句 2.循环语句: LOOP 语句, EXIT 语句 3.顺序语句: GOTO 语句, NULL 语句 一 条件语句 IF ...

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

    PL/SQL是 Procedure Language & Structured Query Language 的缩写 PL/SQL是对SQL语言存储过程语言的扩展 PL/SQL程序由三个块组成 ...

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

    原文:[强烈强烈推荐]<ORACLE PL/SQL编程详解>全原创(共八篇)--系列文章导航 <ORACLE PL/SQL编程详解> 系列文章目录导航 ——通过知识共享树立个人 ...

  8. 浅谈PL/SQL语言基础

    在前面的学习中,我们大部分接触的都是SQL语言,但是,在实现复杂操作的时候,SQL语言就无能为力了,这时候就需要引入新的语言,PL/SQL语言就是对SQL语言的扩展,可以实现存储过程,函数等的创建.下 ...

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

    Oracle中PL/SQL的执行部分和异常部分 一.PL/SQL的执行部分. 赋值语句. 赋值语句分两种,一种是定义一个变量,然后接收用户的IO赋值:另一种是通过SQL查询结果赋值. 用户赋值举例: ...

随机推荐

  1. Spring基础——在Spring Config 文件中配置 Bean

    一.基于 XML 的 Bean 的配置——通过全类名(反射) <bean <!-- id: bean 的名称在IOC容器内必须是唯一的若没有指定,则自动的将全限定类名作为 改 bean 的 ...

  2. sprint5.0

    团队成员完成自己认领的任务. 燃尽图:理解.设计并画出本次Sprint的燃尽图的理想线.参考图6. 每日立会更新任务板上任务完成情况.燃尽图的实际线,分析项目进度是否在正轨.每天的例会结束后的都为任务 ...

  3. IEnumerable接口

    IEnumerable接口顾名思义就是 可枚举的,可列举的. 接口也很简单,返回一个 枚举器对象 IEnumerator . [ComVisible(true), Guid("496B0AB ...

  4. sql date()函数,时间格式

    (1).GETDATE() 函数从 SQL Server 返回当前的日期和时间. 语法 GETDATE() 实例 下面是 SELECT 语句: SELECT GETDATE() AS CurrentD ...

  5. C#开发体感游戏 Kinect应用知识

    Kinect首先是一个XBox 360外接体感设备,通过无线方式捕捉动作感知.由PrimeSense提供Range Camera技术,同类产品如任天堂Wii.Play Station Move,必须让 ...

  6. Linux下centos系统安装redis和php-redis

    源地址:http://mirrors.ustc.edu.cn/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm  //此为centos 6版本 安装输入 ...

  7. 【poj 3461】Oulipo(字符串--KMP)

    题意:求子串在文本串中出现了多少次. 解法:使用KMP的next[ ]和tend[ ]数组计数. #include<cstdio> #include<cstdlib> #inc ...

  8. 利用PBFunc在Powerbuilder中解析Json对象

    利用PBFunc工具在Powerbuilder解析json,只需要调用getattribute方法来获取 解析unicode格式的json: n_pbfunc_json lnv_json lnv_js ...

  9. HTML JavaScript的DOM操作

    1.DOM的基本概念 DOM是文档对象模型,这种模型为树模型:文档是指标签文档:对象是指文档中每个元素:模型是指抽象化的东西. 2.Window对象操作 一.属性和方法: 属性(值或者子对象): op ...

  10. HTML CSS样式表布局

    一.position:fixed 锁定位置(相对于浏览器的位置),例如有些网站的右下角的弹出窗口. 示例: 二.position:absolute 1.外层没有position:absolute(或r ...