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 ...
随机推荐
- 爬虫第一篇基本库的使用——urllib
在Python2中有urllib2和urllib3两个库来实现请求的发送,在Pyhon3中则统一为urllib. urilib包含以下4个模块 request:最基本的请求模块,可以用来实现请求的发送 ...
- Selenium入门15 截图
截图方法: 1 保存截图 get_screenshot_as_file('保存路径\\文件名.png') #有一个\是转义符 2 保存截图 save_screenshot('保存路径\\文件名 ...
- QT学习之QScript
QT中有解析Json的一个类叫QScript.貌似还有一个QJson,但听说解析的方便性不如QScript,具体没有深入探究,这里仅简单记录一下QScript的使用. 首先,主要使用到的类有QScri ...
- vue.js 错误提示bash: vue: command not found
在使用 vue init webpack vue-demo 进行demo的下载时,提示vue: command not found,原因是环境变量没有进行配置,所以会出现这个问题,解决办法 找到你安装 ...
- 使用selenium grid的hub做分发,且可查看分发后的服务器IP地址
背景:借助selenium 的grid做分布式运行,进行分发任务,(目前不做多浏览器的操作,只对谷歌浏览器进行操作) 目前在A服务器(http://10.40.6.24:4444)上注册了一个hub, ...
- an exception occurred while initializing the database.
对于手动删除本地的LocalDB数据库之后出现标题所示异常的,推荐下面的命令: sqllocaldb.exe stop v11.0 sqllocaldb.exe delete v11.0 在程序包管理 ...
- ubuntu 报错E: Could not get lock /var/lib/dpkg/lock-frontend - open (11: Resource temporarily unav E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), is another process us
1.配置xshell,查看虚拟机中ubuntu中网络ip ifconfig 报错 Command 'ifconfig' not found, but can be installed with: su ...
- mysql常用命令添加外键主键约束存储过程索引
数据库连接 mysql -u root -p123456 查看表 show databases 创建数据库设置编码 create table books character set utf8; 创建用 ...
- B3942 Censoring
爆炸入口 有一个S串和一个T串,长度均小于1,000,000,设当前串为U串,然后从前往后枚举S串一个字符一个字符往U串里添加,若U串后缀为T,则去掉这个后缀继续流程. 这道题确乎是个很好的联系kmp ...
- discuz 被入侵后,最可能被修改的文件
最近发现站点被黑了,现在还不知道是由系统漏洞导致的系统账户被攻陷,还是程序漏洞,文件被篡改.有一些敏感关键词(例如:赌博,电子路单)被恶意指向,点击搜索结果自动跳转到其他站点,而且是大量的,通过搜索“ ...