Oracle的for循环执行顺序详解
oracle 测试for 循环:
1.经常会有要写for 循环的场景:
for 循环名 in (循环体) loop end loop;
2.问题背景:
for 循环体内的执行顺序,究竟是查询了结果集,再去跑循环,还是每一次都会重新获取结果集;
3.问题:
我对循环体内的表进行增删改,会不会影响到我的循环结果;
4.测试:
1)建表+插入数据:
create table TMP_TEST_ZLR
(
orderlineno varchar2(100),
descr varchar2(100))insert into TMP_TEST_ZLR(orderlineno,descr) values('1','第一行数据');
insert into TMP_TEST_ZLR(orderlineno,descr) values('2','第二行数据');
insert into TMP_TEST_ZLR(orderlineno,descr) values('3','第三行数据');
insert into TMP_TEST_ZLR(orderlineno,descr) values('4','第四行数据');
insert into TMP_TEST_ZLR(orderlineno,descr) values('5','第五行数据');
insert into TMP_TEST_ZLR(orderlineno,descr) values('6','第六行数据');
insert into TMP_TEST_ZLR(orderlineno,descr) values('7','第七行数据');
insert into TMP_TEST_ZLR(orderlineno,descr) values('8','第八行数据');
表的数据结果:
2)写循环:
declare r_int int;beginr_int := 1;for r in (select * from TMP_TEST_ZLR a order by a.orderlineno) loopif r_int = r.orderlineno thendbms_output.put_line(r.descr);end if;delete from TMP_TEST_ZLR a where a.orderlineno = '2';commit;r_int := r_int+1;end loop;end ;
解释:
–1.我在跑循环的过程中,删了这个某一行测试表的数据,想要看看是否会干扰for 循环的执行
1)如果是以先查出结果集来跑循环的,那应该会打印出我的第二行数据;
2)如果不是,那就只会有7行数据;
3)最终结果:
打印:
数据表结果:
5.结论
1.for 循环体内的执行顺序:先全查,得到了结果集,再去跑循环,循环体内的表进行增删改,循环体的结果集数据不变;
Oracle的for循环执行顺序详解相关推荐
- for循环执行顺序详解(避坑)
今天刷题碰到的一个坑,就是没有注意到for循环的每次判断条件导致的**,也就是for循环的第二句**,每次循环都会执行该判断条件. for循环的表达式一般如下: for(表达式1;表达式2;表达式3) ...
- unity 继承会调用start吗_Unity 继承MonoBehaviour脚本 执行顺序 详解
先看结果 Awake ->OnEnable-> Start ->-> FixedUpdate-> Update -> LateUpdate ->OnGUI ...
- 【异步系列二】Promise原理及执行顺序详解
前言 Promise 是 javascript 中非常重要的一环,熟悉它是必须的,而且在面试中也常常会问到相关面试题. 在了解 Promise 之前,需要了解什么是异步编程,可以参考我的一篇文章:Ja ...
- java try、catch、finally及finally执行顺序详解
1.为什么要用finally 先看一个没有finally的异常处理try-catch语句: 假设count为要使用到的资源,并且用完要求释放此资源.那么我们可以把释放资源的语句放到try-catch后 ...
- Python装饰器执行顺序详解
探究多个装饰器执行顺序 装饰器是Python用于封装函数或代码的工具,网上可以搜到很多文章可以学习,我在这里要讨论的是多个装饰器执行顺序的一个迷思. 疑问 大部分涉及多个装饰器装饰的函数调用顺序时都会 ...
- C++三大继承构造函数的执行顺序详解
写的挺好的,关于继承和构造函数的先后顺序问题. 转自: http://blog.csdn.net/daheiantian/archive/2011/02/18/6438782.aspx 一.单继承 核 ...
- javascript运行机制之执行顺序详解
JavaScript是一种描述型脚本语言,它不同于java或C#等编译性语言,它不需要进行编译成中间语言,而是由浏览器进行动态地解析与执行.那么JavaScript是怎么来进行解析的吗?它的执行顺序又 ...
- python两个装饰器执行顺序_python中多个装饰器的执行顺序详解
装饰器是程序开发中经常会用到的一个功能,也是python语言开发的基础知识,如果能够在程序中合理的使用装饰器,不仅可以提高开发效率,而且可以让写的代码看上去显的高大上^_^ 使用场景 可以用到装饰器的 ...
- python装饰器的顺序_python中多个装饰器的执行顺序详解
装饰器是程序开发中经常会用到的一个功能,也是python语言开发的基础知识,如果能够在程序中合理的使用装饰器,不仅可以提高开发效率,而且可以让写的代码看上去显的高大上^_^ 使用场景 可以用到装饰器的 ...
最新文章
- Altium Designer20原理图库放置引脚报错解决方案
- 但我发现了幸福的超级玛丽
- Scala学习笔记(1)-环境搭建
- 今天while if wlse..
- Project Euler 628: Open chess positions(公式)
- 终于 知道为什么datagrid有时候翻页要双击了...
- Python爬虫爬取豆瓣图书的信息和封面,放入MySQL数据库中。
- SpringBoot整合ureport2
- matlab的kron函数(kronecker乘积)
- JavaWeb学习-案例练习-图书管理后台-5- 完成图书删除功能
- mysql实现自增字符串_Mysql实现字符串主键自增示例教程-Go语言中文社区
- 快应用如何接入微信支付
- python-电脑调用手机摄像头
- 安装Adobe After Effects(AE)的时候卡在登陆界面?
- 前端 - 如何引入阿里巴巴矢量图库?
- 《日语综合教程》第七册 第五課 読み物 雄弁な寡黙
- 以复旦大学为例。我对复旦比较熟悉。
- VR全景的拍摄制作上传
- 如何在JavaScript中实现国际化(i18n)
- 上职高学计算机专业有前途吗,职高有哪些专业前途好有发展前景
热门文章
- QGIS中百度、高德与WGS84坐标系之间的转换
- php做的竞标网,php网上竞标系统-php定做
- java的start()函数是什么意思_在Java中,start()函数在多线程中做了什么? - Break易站...
- 更换Ubuntu源为清华源
- webgl-矩阵、旋转、平移、缩放 glMatrix组件
- 微信登录分享不回调WXEntryActivity
- list 分批_java 分批读取list
- 电竞蓝牙耳机推荐什么牌子好?性价比最高的电竞蓝牙耳机
- vue3小兔鲜商城项目学习笔记+资料分享03
- 链式法则求积分_链式法则