1、基本 LOOP 循环语句

语法:

LOOP
语句序列;
END LOOP; 其中,语句序列中需要一个EXIT语句或一个EXIT WHEN语句来中断循环。

实例:

DECLARE
x number(2) := 10;
BEGIN
LOOP
dbms_output.put_line(x);
x := x + 10;
IF x > 50 THEN
exit;
END IF;
END LOOP;
dbms_output.put_line('LOOP结束: ' || x);
END;
或者

使用EXIT WHEN语句来代替EXIT语句:
DECLARE
x number(2) := 10;
BEGIN
LOOP
dbms_output.put_line(x);
x := x + 10;
EXIT WHEN x > 50;
END LOOP;
dbms_output.put_line('LOOP结束: ' || x);
END;

2、WHILE LOOP 语句

语法:

WHILE 条件 LOOP
语句序列;
END LOOP;

实例:

DECLARE
x number(2) := 10;
BEGIN
WHILE x < 20 LOOP
dbms_output.put_line(x);
x := x + 1;
END LOOP;
END;

3、FOR LOOP 语句

语法:

FOR counter IN initial_value .. final_value LOOP
语句序列;
END LOOP; 说明:
循环变量或计数器的initial_value和final_value可以是文字,变量或表达式,但必须对数字求值。 否则,PL/SQL引发预定义的异常VALUE_ERROR;
initial_value不必为1; 但是,循环计数器增量(或减量)必须为1;
PL/SQL允许在运行时动态地确定循环范围。

实例:

DECLARE
x number(2);
BEGIN
FOR x IN 10 .. 20 LOOP
dbms_output.put_line(x);
END LOOP;
END; 输出结果:
10
11
12
13
14
15
16
17
18
19
20
反转FOR LOOP语句:

DECLARE
x number(2) ;
BEGIN
FOR x IN REVERSE 10 .. 20 LOOP
dbms_output.put_line(x);
END LOOP;
END; 输出结果:
20
19
18
17
16
15
14
13
12
11
10

注:可在任何其他基本循环中使用一个或多个循环,如:whilefor循环。

4、标记PL/SQL循环

标签使用双尖括号(<<>>)括起来,并显示在LOOP语句的开头。标签名称也可以出现在LOOP语句的末尾。

实例:

实例1:
DECLARE
i number(1);
j number(1);
BEGIN
<< outer_loop >>
FOR i IN 1..3 LOOP
<< inner_loop >>
FOR j IN 1..3 LOOP
dbms_output.put_line('i = '|| i || ', j = ' || j);
END loop inner_loop;
END LOOP outer_loop;
END; 实例2:
DECLARE
x number(2) := 0;
BEGIN
<< mark_loop >>
x := x + 1;
IF x < 10 THEN
dbms_output.put_line(x);
GOTO mark_loop;
END IF;
END;

PL/SQL 循环语句的更多相关文章

  1. PL/SQL批处理语句(二)FORALL

    PL/SQL批处理语句(二)FORALL 我们知道PL/SQL程序中运行SQL语句是存在开销的,因为SQL语句是要提交给SQL引擎处理,这种在PL/SQL引擎和SQL引擎之间的控制转移叫做上下文却换, ...

  2. ql/sql 循环语句、异常处理、事务处理!

    一.ql sql 循环语句? /*1.loop循环 语法: 声明循环变量 loop 判断循环条件 ,如果循环条件不成立,跳出循if 条件表达式 then exit; end if; 语句块; 改变循环 ...

  3. SQL循环语句 详解

    SQL循环语句 declare @i int set @i=1 while @i<30 begin insert into test (userid) values(@i) set @i=@i+ ...

  4. Oracle语句块PL/SQL循环判断

    - --pl/sql Procedural Language /sql --被数据库编译保存,由用户调用 --程序块 /* 语法 Declare – 声明变量 --声明变量 Age int; //没有 ...

  5. PL/SQL批处理语句(BULK COLLECT子句和FORALL语句)

    Oracle为PL/SQL中的SQL相关功能提供了FORALL语句和BULK COLLECT子句,显著的增强了SQL相关功能.这两个语句一起被称作PL/SQL的批处理语句.Oracle为什么要提供这两 ...

  6. PL/SQL批处理语句(一)BULK COLLECT

    我们知道PL/SQL程序中运行SQL语句是存在开销的,因为SQL语句是要提交给SQL引擎处理,这种在PL/SQL引擎和SQL引擎之间的控制转移叫做上下文却换,每次却换时,都有额外的开销.然而,FORA ...

  7. 五、PL/SQL循环、游标、函数和过程

    --PL/SQL基础知识学习 --一.PL/SQL语句块,基础语法格式 DECLARE --变量声明列表 info varchar(25); --变量声明 stu_unm integer := 15; ...

  8. PL/SQL 循环

    ----PL/SQL基本循环语句 LOOP DECLARE x ; BEGIN LOOP dbms_output.put_line(x); x :; THEN exit; END IF; END LO ...

  9. PL/SQL循环

    1.if循环做判断 SET SERVEROUTPUT ON accept num prompt 'qinshuu'; DECLARE pnum NUMBER :=& num ; BEGIN T ...

随机推荐

  1. Cmake 01

    1. sdsf(single direction single file) 1.1  The directory tree /* ./template | +--- build | +---main. ...

  2. java中string类型转换成map

    背景:有时候string类型的数据取出来是个很标准的key.value形式,通过Gson的可以直接转成map 使用方式: Gson gson = new Gson(); Map<String, ...

  3. Java nio socket与as3 socket(粘包解码)连接的应用实例

    对Java nio socket与as3 socket连接的简单应用 <ignore_js_op>Java nio socket与as3 socket连接的应用实例.rar (9.61 K ...

  4. url 解析

    最近在做一个单页应用,使用AngularJS来处理一些页内路由(哈希#后的路由变化).自然会要解析URL中的参数.使用AngularJS自带的方法$location.search();可以自动将参数整 ...

  5. img适配问题解决方法

    将img放到background中,将background-size设置为100%:只需要适配背景为img的元素的宽和高即可.

  6. js 图片库 改进版

    平稳退化 js与html标记分离? 如果有两个函数:firstFunction和secondFunction,如果想让它们俩都在页面加载时得到执行,可以调用函数addLoadEvent,只有一个参数, ...

  7. Webpack4 学习笔记二 CSS模块转换

    前言 此内容是个人学习笔记,以便日后翻阅.非教程,如有错误还请指出 webpack 打包css模块 webpack是js模块打包器, 如果在入口文件引入css文件或其它的less.sass等文件,需要 ...

  8. 连接MYSQL 错误代码2003

    问题是服务里面mysql没有启动或者mysql服务丢失 解决办法: 开始->运行->cmd,进到mysql安装的bin目录(以我的为例,我的安装在D盘)D:\MySQL\bin>my ...

  9. js | javascript中获取dom元素的高度和宽度

    javascript中获取dom元素高度和宽度的方法如下: 网页可见区域宽: document.body.clientWidth网页可见区域高: document.body.clientHeight网 ...

  10. python实现简单关联规则Apriori算法

    from itertools import combinations from copy import deepcopy # 导入数据,并剔除支持度计数小于min_support的1项集 def lo ...