PL/SQL 循环语句
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
注:可在任何其他基本循环中使用一个或多个循环,如:while
或for
循环。
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 循环语句的更多相关文章
- PL/SQL批处理语句(二)FORALL
PL/SQL批处理语句(二)FORALL 我们知道PL/SQL程序中运行SQL语句是存在开销的,因为SQL语句是要提交给SQL引擎处理,这种在PL/SQL引擎和SQL引擎之间的控制转移叫做上下文却换, ...
- ql/sql 循环语句、异常处理、事务处理!
一.ql sql 循环语句? /*1.loop循环 语法: 声明循环变量 loop 判断循环条件 ,如果循环条件不成立,跳出循if 条件表达式 then exit; end if; 语句块; 改变循环 ...
- SQL循环语句 详解
SQL循环语句 declare @i int set @i=1 while @i<30 begin insert into test (userid) values(@i) set @i=@i+ ...
- Oracle语句块PL/SQL循环判断
- --pl/sql Procedural Language /sql --被数据库编译保存,由用户调用 --程序块 /* 语法 Declare – 声明变量 --声明变量 Age int; //没有 ...
- PL/SQL批处理语句(BULK COLLECT子句和FORALL语句)
Oracle为PL/SQL中的SQL相关功能提供了FORALL语句和BULK COLLECT子句,显著的增强了SQL相关功能.这两个语句一起被称作PL/SQL的批处理语句.Oracle为什么要提供这两 ...
- PL/SQL批处理语句(一)BULK COLLECT
我们知道PL/SQL程序中运行SQL语句是存在开销的,因为SQL语句是要提交给SQL引擎处理,这种在PL/SQL引擎和SQL引擎之间的控制转移叫做上下文却换,每次却换时,都有额外的开销.然而,FORA ...
- 五、PL/SQL循环、游标、函数和过程
--PL/SQL基础知识学习 --一.PL/SQL语句块,基础语法格式 DECLARE --变量声明列表 info varchar(25); --变量声明 stu_unm integer := 15; ...
- PL/SQL 循环
----PL/SQL基本循环语句 LOOP DECLARE x ; BEGIN LOOP dbms_output.put_line(x); x :; THEN exit; END IF; END LO ...
- PL/SQL循环
1.if循环做判断 SET SERVEROUTPUT ON accept num prompt 'qinshuu'; DECLARE pnum NUMBER :=& num ; BEGIN T ...
随机推荐
- C++11 新特性之 序列for循环
版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/lr982330245/article/details/30971195 在C++中在C++中for循 ...
- 转:adb操作命令详解及大全
说到 ADB 大家应该都不陌生,即 Android Debug Bridge,Android调试桥,身为 Android 开发的我们,熟练使用 ADB 命令将会大大提升我们的开发效率, ADB 的命令 ...
- P1316 丢瓶盖
题目描述 陶陶是个贪玩的孩子,他在地上丢了A个瓶盖,为了简化问题,我们可以当作这A个瓶盖丢在一条直线上,现在他想从这些瓶盖里找出B个,使得距离最近的2个距离最大,他想知道,最大可以到多少呢? 输入输出 ...
- Entity Framework的扩展库
https://github.com/jcachat/EntityFramework.DynamicFilters Provides global & scoped filters for E ...
- _default_ VirtualHost overlap on port 80, the first has precedence
去掉#NameVirtualHost *:80,然后重启httpd
- java设计模式——享元模式
一. 定义与类型 定义:提供了减少对象数量从而改善应用所需的对象结构的方式,运用共享技术有效地支持大量细粒度的对象 类型:结构性 二. 使用场景 (1) 常常应用于系统底层的开发,以便解决系统的性能 ...
- 理解golang中的function types
先找个例子来看一下: package main import "fmt" // Greeting function types type Greeting func(name st ...
- 获取Grid后台动态添加的子项
例:Grid的子项是包含边框的复选框CheckBox //遍历Grid中的子项 foreach (var c in this.grid_box.Children) { Border bd = c as ...
- Target runtime Apache Tomcat v8.5 is not defined.
Target runtime Apache Tomcat v8.5(或者其它版本) is not defined. 这个错误通常是在从文件夹中导入别人的项目的时候发生,因为 在 .setting 中有 ...
- python实现排序之冒泡排序
冒泡排序:是将一串无需的数字,排列成有序的.通过相邻的两个数作比较,大的往后移,经过反复的比较,最后得出一串有序的数列. 那么用代码该如何实现? 其实这个问题的思路就是判断每相邻的两个数,进行大小比较 ...