oracle学习--循环语句
oracle学习--循环语句
loop循环:
create or replace procedure pro_test_loop is
i number;
begin
i:=0;
loop
i:=i+1;
dbms_output.put_line(i);
if i>5 then
exit;
end if;
end loop;
end pro_test_loop;
while循环:
create or replace procedure pro_test_while is
i number;
begin
i:=0;
while i<5 loop
i:=i+1;
dbms_output.put_line(i);
end loop;
end pro_test_while;
for循环1:
create or replace procedure pro_test_for is
i number;
begin
i:=0;
for i in 1..5 loop
dbms_output.put_line(i);
end loop;
end pro_test_for;
for循环2:
create or replace procedure pro_test_cursor is
userRow t_user%rowtype;
cursor userRows is
select * from t_user;
begin
for userRow in userRows loop
dbms_output.put_line(userRow.Id||','||userRow.Name||','||userRows%rowcount);
end loop;
end pro_test_cursor; ------------------------------------ 跳出循环:
有时候编写Oracle中用游标等信息去循环处理逻辑的时候,对EXIT、RETURN、CONTINUE很容易搞混淆,网上搜了资料也不是很清楚,所以本人自己写了一小段代码测试了这三种用法。案例代码如下:
BEGIN
FOR MY_CU IN (SELECT SPBH, SPMCH FROM FUCM) LOOP
FOR MY IN (SELECT SPBH, SPMCH FROM FUCM) LOOP
IF MY_CU.SPBH = 'AAA' THEN
RETURN;
--exit;
--continue;
ELSIF MY.SPBH = 'BBB' THEN
INSERT INTO FUCM_JG (SPBH, SPMCH) VALUES ('', '');
ELSE
INSERT INTO FUCM_JG (SPBH, SPMCH) VALUES ('', '');
END IF;
INSERT INTO FUCM_JG (SPBH, SPMCH) VALUES ('', '');
END LOOP;
END LOOP;
INSERT INTO FUCM_JG (SPBH, SPMCH) VALUES ('', '');
END P_TASK;
案例测试得到结果如下(分析的结果中注意本次循环和本循环的区别。本次循环是本循环执行的这次循环):
第一种:使用RETURN的时候,直接跳出存储过程或者函数
第二种:使用EXIT的时候,跳出本循环转而执行本循环的上一级循环的下一次循环。就此案例而言MY_CU.SPBH = 'AAA'为真的时候,直接跳出MY循环转而去执行MY_CU的下一次循环
第三种:使用CONTINUE的时候,本次循环后面的代码部分不再执行,转而执行本循环的下一次循环。就此案例而言MY_CU.SPBH = 'AAA'为真的时候,后面的代码不执行,继续MY的下一次循环
努力赚钱
oracle学习--循环语句的更多相关文章
- c#基础;初步学习循环语句
循环语句就是 在满足循环条件的情况下会有顺序的执行循环体 循环语句:for : while : foreach:三种. 循环语句 必须具备四要素:初始条件.循环条件.循环体.状 ...
- Oracle学习【语句查询】
基本查询语句any和all不能单独使用,必须和比较符一起使用>any 大于最小的例如:select * from emp where sal >any(1000,2000);<any ...
- Java学习--循环语句1
1. break public class BreakDemo{ // 完成一个四则运算的功能 public static void main(String args[]){ for(int i=0; ...
- Java学习--循环语句
1. break public class BreakDemo{ // 完成一个四则运算的功能 public static void main(String args[]){ for(int i=0; ...
- python 基础学习4 字典和循环语句
学了这么多天的基础,好着急的想什么时候可以开始写个小程序,今天还是静下心来把字典和循环语句学习了 关于字典,主要是了解了字典的创建,和映射,以及一些基本的运算法,运算法不一一列出,运算法在用到的时候会 ...
- 前端笔记知识点整合之JavaScript(三)关于条件判断语句、循环语句那点事
一.条件分支语句 条件分支语句,也叫作条件判断语句,就是根据某种条件执行某些语句,不执行某些语句. JS中有三种语法是可以表示条件分支的 1.1 if……else…… 条件分支的主力语法,这个主力 ...
- 前端笔记之JavaScript(三)关于条件判断语句、循环语句那点事
一.条件分支语句 条件分支语句,也叫作条件判断语句,就是根据某种条件执行某些语句,不执行某些语句. JS中有三种语法是可以表示条件分支的 1.1 if……else…… 条件分支的主力语法,这个主力语法 ...
- shell基础(八)-循环语句
国庆过后:感觉有点慵懒些了:接着上篇:我们继续来学习循环语句. 一. for循环 与其他编程语言类似,Shell支持for循环. for循环一般格式为: for 变量 in 列表 do command ...
- 【shell】shell编程(四)-循环语句
上篇我们学习了shell中条件选择语句的用法.接下来本篇就来学习循环语句.在shell中,循环是通过for, while, until命令来实现的.下面就分别来看看吧. for for循环有两种形式: ...
随机推荐
- <spark> ~/spark/conf/spark-default.conf 配置文件
因为看到我参考的Hadoop/spark集群搭建的文档中的都没有对 /spark-default.conf 的配置 合理地对 /spark-default.conf 进行配置,能够提高执行效率 -- ...
- 【转】Exchange Server 的防火墙开放端口
关于exchange所用到的端口参阅下面的文档, 适用于exchange2010sp2. http://technet.microsoft.com/en-us/library/bb331973.asp ...
- 42.scrapy爬取数据入库mongodb
scrapy爬虫采集数据存入mongodb采集效果如图: 1.首先开启服务切换到mongodb的bin目录下 命令:mongod --dbpath e:\data\db 另开黑窗口 命令:mongo. ...
- 17.1拓展之纯 CSS 创作炫酷的同心圆旋转动画
效果地址:https://codepen.io/flyingliao/pen/ebjEMm?editors=1100 HTML代码: <div class="loader"& ...
- Executors.newSingleThreadScheduledExecutor();线程池中放入多个线程问题
转自:https://blog.csdn.net/u012062455/article/details/78247234/
- java解析文件
遇到两个小坑: 1.使用String.split,部分分隔符需要转义:https://www.cnblogs.com/mingforyou/archive/2013/09/03/3299569.htm ...
- 深度学习原理与框架-Tensorflow卷积神经网络-神经网络mnist分类
使用tensorflow构造神经网络用来进行mnist数据集的分类 相比与上一节讲到的逻辑回归,神经网络比逻辑回归多了隐藏层,同时在每一个线性变化后添加了relu作为激活函数, 神经网络使用的损失值为 ...
- 机器学习进阶-光流估计 1.cv2.goodFeaturesToTrack(找出光流估计所需要的角点) 2.cv2.calcOpticalFlowPyrLK(获得光流检测后的角点位置) 3.cv2.add(进行像素点的加和)
1.cv2.goodFeaturesToTrack(old_gray, mask=None, **feature_params) 用于获得光流估计所需要的角点参数说明:old_gray表示输入图片, ...
- air 调用jsfl 执行对应函数,并传参
jsflPath = "WindowSWF/dt_tool_jsfl/" + event.item.fileName+".jsfl"; var element_ ...
- setTimeout闭包常见问题
经常会遇到这样的问题,setTimeout按序输出循环数字,而不是最后输出同一个数字: 题目: for (var i = 0; i < 5; i++) { setTimeout(function ...