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. 如何在win10中安装ArcGIS10.2

    在win10中安装ArcGIS10.2,完美兼容,下面将自己在win10界面下的安装方法给大家分享一下. 工具/原料   win10环境 ArcGIS10.2安装包, 安装包地址链接: 链接: htt ...

  2. php5.3 yum安装升级版本到 php5.6

    centOS系统下如何将php升级到5.6,之前通过yum来安装lamp环境,直接升级的话,提示没有更新包,也就是说默认情况下php5.3.3是最新   1.查看已经安装的php版本号 键入下面代码: ...

  3. C语言函数申明关键字inline

    内联inline是给编译器的优化提示,如果一个函数被编译成inline的话,那么就会把函数里面的代码直接插入到调用这个函数的地方,而不是用调用函数的形式.如果函数体代码很短的话,这样会比较有效率,因为 ...

  4. war和war exploded的区别

    是选择war还是war exploded 这里首先看一下他们两个的区别: (1)war模式这种可以称之为是发布模式,看名字也知道,这是先打成war包,再发布: (2)war exploded模式是直接 ...

  5. Django之模型(model)中的choices字段的使用

    转载自:http://quke.org/post/django-model-choices.html Django模型中的字段有个choices属性,这个属性可以提供被选数据,choices的参数是一 ...

  6. 访问数据库需要注意的问题 c#

    在操作数据库的过程中,必然要产生数据库连接,这就要求在使用的时候要及时关闭连接.以避免数据库会话过多的问题. 以Oracle数据库为例: Oracle数据库查看会话,进程的语句 --查询数据库当前进程 ...

  7. PHP:(一)安装并使用PHP

    php的安装分为两个部分:环境安装配置和开发工具 一.集成环境安装配置 (一)安装 选择:wampserver或者xampp 我采用的是xampp. 在http://www.sourceforce.n ...

  8. jquery操作DOM 元素(2)

    .after() 在匹配的元素集合中的每个元素后面插入参数指定的内容,作为其兄弟节点. .after(content[,content]) content HTML字符串 DOM 元素 元素数组 对象 ...

  9. IO流的应用_Copy文件

    IO流的应用_Copy文件 (1) import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundEx ...

  10. SEOer必读:50个网站推广方法

    1.论坛推广 这里所说的论坛推广绝对不是在论坛里一个一个版贴广告,也不是将网站地址加在签名里然后疯狂刷屏,那样既耗费精力而且效果也不见得好,论坛管理员只要点几下鼠标就能将你的帖子全部删除,顺便封掉你的 ...