循环结构:

1、 LOOP循环结构

  语法:

  LOOP

    要执行的语句;

    EXIT WHEN <条件>   --条件满足则退出循环

  END LOOP;

  示例:循环输出1-10的整数  

DECLARE
v_num NUMBER := 1;
BEGIN
LOOP
DBMS_OUTPUT.put_line(v_num);
v_num := v_num + 1;
EXIT WHEN v_num > 10;
END LOOP;
END;

  LOOP结构的弊端:结构不够清晰,EXIT容易漏写。

2、WHILE循环结构

  语法:

  WHILE <布尔表达式> LOOP

    要执行的语句;

  END LOOP;

  示例:显示1-10的整数;  

DECLARE
v_num NUMBER := 1;
BEGIN
WHILE v_num <= 10 LOOP
DBMS_OUTPUT.put_line(v_num);
v_num := v_num + 1;
END LOOP;
END;

3、FOR循环

  语法:

  FOR 循环计数器 IN [REVERSE] 下线...上限 LOOP

    要执行的语句;

  END LOOP;

  示例:显示1-10的整数  

DECLARE
v_num NUMBER;
BEGIN
FOR v_num IN 1..10 LOOP
DBMS_OUTPUT.PUT_LINE(V_NUM);
END LOOP;
END;

在for循环中,每循环一次,循环变量自动+1,使用关键字reverse,循环变量自动-1,跟在in reverse后的数字必须从小到大,而且必须是整数,不能是变量或者表达式,可以使用EXIT退出循环。

上一个例子中如果添加reverse则是降序输出。

总结:

循环结构可以重复执行某些操作,在已知循环次数情况下优先采用for循环,未知次数情况下采用while循环。EXIT可以嵌套在任何循环中,直接终止循环。 LOOP一般不使用!

Oracle基础 PL-SQL编程基础(3) 循环结构的更多相关文章

  1. Oracle数据库编程:PL/SQL编程基础

    2.PL/SQL编程基础: PL/SQL块:        declare        定义部分        begin        执行部分        exception        异 ...

  2. 【PL/SQL编程基础】

    [PL/SQL编程基础]语法: declare 声明部分,例如定义变量.常量.游标 begin 程序编写,SQL语句 exception 处理异常 end: / 正斜杠表示执行程序快范例 -- Cre ...

  3. PL/SQL编程基础(四):程序控制(IF,CASE,FOR,LOOP,WHILE LOOP,EXIT,CONTINUE)

    程序控制 程序结构有分支结构与循环结构: 分支结构语法:IF.CASE: 循环结构:FOR.WHILE LOOP:先执行再判断,至少执行一次: WHILE LOOP:先判断再执行,如果不满足条件,就不 ...

  4. Oracle Pl/SQL编程基础

    Pl/SQL简介 提高应用程序的运行性能, 提供模块化的程序设计, 自定义标示符, 具有过程语言控制结构, 良好的兼容性, 处理运行错误. Pl/SQL语言基础 sql是关系数据库的基本操作语言. s ...

  5. Oracle PL/SQL 编程基础 实例

    create table mytest(name varchar(20),password varchar(30)); create or replace procedure sp_pro2 is  ...

  6. PL/SQL编程基础(三):数据类型划分

    数据类型划分 在Oracle之中所提供的数据类型,一共分为四类: 标量类型(SCALAR,或称基本数据类型) 用于保存单个值,例如:字符串.数字.日期.布尔: 标量类型只是作为单一类型的数据存在,有的 ...

  7. oracle PL/SQL编程基础知识

    在oracle中使用pl/sql来扩展SQL的功能,使得SQL能够更加的灵活,功能更加强大,效率更高.pl/sql让sql也能执行判断,循环等操作.主要记录一下pl/sql的基本语法和基本条件判断语句 ...

  8. PL/SQL编程基础(一):PL/SQL语法简介(匿名PL/SQL块)

    PL/SQL PL/SQL是Oracle在关系数据库结构化查询语言SQL基础上扩展得到的一种过程化查询语言. SQL与编程语言之间的不同在于,SQL没有变量,SQL没有流程控制(分支,循环).而PL/ ...

  9. PL/SQL编程基础——PL/SQL简介

    课程教师:李兴华 课程学习者:阳光罗诺 日期:2018-07-28 知识点: 1. 了解PL/SQL的主要特点 2. 掌握PL/SQL块的基本结构 PL/SQL PL/SQL是Oracle在关系数据库 ...

  10. PL/SQL编程基础(五):异常处理(EXCEPTION)

    异常处理 异常产生所带来的问题: 使用EXCEPTION程序块进行异常处理: 实现用户自定义异常. 使用异常可以保证在程序中出现运行时异常时程序可以正常的执行完毕: 用户可以使用自定义异常进行操作. ...

随机推荐

  1. MVC学习__修改工程端口号

    有时候,我们会希望修改工程默认生成的端口号,方法如下:

  2. 再议gluPerspective和gluLookAt的关系

    http://www.cnblogs.com/chengmin/archive/2011/09/12/2174004.html 看了Opengl的相关程序,发现有些东西还是特别迷茫,尤其是gluLoo ...

  3. MySQL学习——基础

    本文是MySQL的基础知识. Linux启动MySQL服务命令 : service mysql start Linux关闭MySQL服务命令 : service mysql stop 登录MySQL命 ...

  4. ECMAScript和JavaScript的关系

    JavaScript 是一种基于 ECMAScript 规范的脚本语言,并在此基础上进行了自己的封装.ECMAScript 不是一种编程语言,仅仅是一种脚本语言规范,由欧洲计算机协会制定和发布,任何基 ...

  5. CI中SESSION的用法及其注意

    销毁 Session要清除当前 session: $this->session->sess_destroy(); 注意: 此函数应该是最后被调用的.即使闪出变量已不再有效.如果你只想让某几 ...

  6. Codeforces Gym100952 D. Time to go back-杨辉三角处理组合数 (2015 HIAST Collegiate Programming Contest)

    D. Time to go back   time limit per test 1 second memory limit per test 256 megabytes input standard ...

  7. Ansible 删除多个文件或目录

    翻译和转载该网页内容 http://www.mydailytutorials.com/ansible-delete-multiple-files-directories-ansible/ 背景 ans ...

  8. 51Nod - 1405 树的距离之和(树形DP)

    1405 树的距离之和 题意 给定一棵无根树,假设它有n个节点,节点编号从1到n,求任意两点之间的距离(最短路径)之和. 分析 树形DP. 首先我们让 \(1\) 为根.要开两个数组 \(up \ d ...

  9. C. Heidi and Library (神奇的网络流)

    C. Heidi and Library 题意 有 n 种分别具有价格 b 的书 a ,图书馆里最多同时存放 k 本书,已知接下来 n 天每天都有一个人来看某一本书,如果图书馆里没有则需要购买,问最少 ...

  10. ORA-17003. Invalid column index

    sql里面有? 希望输入有参数 java程序里面没有给入参数