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循环执行顺序详解相关推荐

  1. for循环执行顺序详解(避坑)

    今天刷题碰到的一个坑,就是没有注意到for循环的每次判断条件导致的**,也就是for循环的第二句**,每次循环都会执行该判断条件. for循环的表达式一般如下: for(表达式1;表达式2;表达式3) ...

  2. unity 继承会调用start吗_Unity 继承MonoBehaviour脚本 执行顺序 详解

    先看结果 Awake ->OnEnable-> Start ->-> FixedUpdate-> Update  -> LateUpdate ->OnGUI ...

  3. 【异步系列二】Promise原理及执行顺序详解

    前言 Promise 是 javascript 中非常重要的一环,熟悉它是必须的,而且在面试中也常常会问到相关面试题. 在了解 Promise 之前,需要了解什么是异步编程,可以参考我的一篇文章:Ja ...

  4. java try、catch、finally及finally执行顺序详解

    1.为什么要用finally 先看一个没有finally的异常处理try-catch语句: 假设count为要使用到的资源,并且用完要求释放此资源.那么我们可以把释放资源的语句放到try-catch后 ...

  5. Python装饰器执行顺序详解

    探究多个装饰器执行顺序 装饰器是Python用于封装函数或代码的工具,网上可以搜到很多文章可以学习,我在这里要讨论的是多个装饰器执行顺序的一个迷思. 疑问 大部分涉及多个装饰器装饰的函数调用顺序时都会 ...

  6. C++三大继承构造函数的执行顺序详解

    写的挺好的,关于继承和构造函数的先后顺序问题. 转自: http://blog.csdn.net/daheiantian/archive/2011/02/18/6438782.aspx 一.单继承 核 ...

  7. javascript运行机制之执行顺序详解

    JavaScript是一种描述型脚本语言,它不同于java或C#等编译性语言,它不需要进行编译成中间语言,而是由浏览器进行动态地解析与执行.那么JavaScript是怎么来进行解析的吗?它的执行顺序又 ...

  8. python两个装饰器执行顺序_python中多个装饰器的执行顺序详解

    装饰器是程序开发中经常会用到的一个功能,也是python语言开发的基础知识,如果能够在程序中合理的使用装饰器,不仅可以提高开发效率,而且可以让写的代码看上去显的高大上^_^ 使用场景 可以用到装饰器的 ...

  9. python装饰器的顺序_python中多个装饰器的执行顺序详解

    装饰器是程序开发中经常会用到的一个功能,也是python语言开发的基础知识,如果能够在程序中合理的使用装饰器,不仅可以提高开发效率,而且可以让写的代码看上去显的高大上^_^ 使用场景 可以用到装饰器的 ...

最新文章

  1. Altium Designer20原理图库放置引脚报错解决方案
  2. 但我发现了幸福的超级玛丽
  3. Scala学习笔记(1)-环境搭建
  4. 今天while if wlse..
  5. Project Euler 628: Open chess positions(公式)
  6. 终于 知道为什么datagrid有时候翻页要双击了...
  7. Python爬虫爬取豆瓣图书的信息和封面,放入MySQL数据库中。
  8. SpringBoot整合ureport2
  9. matlab的kron函数(kronecker乘积)
  10. JavaWeb学习-案例练习-图书管理后台-5- 完成图书删除功能
  11. mysql实现自增字符串_Mysql实现字符串主键自增示例教程-Go语言中文社区
  12. 快应用如何接入微信支付
  13. python-电脑调用手机摄像头
  14. 安装Adobe After Effects(AE)的时候卡在登陆界面?
  15. 前端 - 如何引入阿里巴巴矢量图库?
  16. 《日语综合教程》第七册 第五課 読み物 雄弁な寡黙
  17. 以复旦大学为例。我对复旦比较熟悉。
  18. VR全景的拍摄制作上传
  19. 如何在JavaScript中实现国际化(i18n)
  20. 上职高学计算机专业有前途吗,职高有哪些专业前途好有发展前景

热门文章

  1. QGIS中百度、高德与WGS84坐标系之间的转换
  2. php做的竞标网,php网上竞标系统-php定做
  3. java的start()函数是什么意思_在Java中,start()函数在多线程中做了什么? - Break易站...
  4. 更换Ubuntu源为清华源
  5. webgl-矩阵、旋转、平移、缩放 glMatrix组件
  6. 微信登录分享不回调WXEntryActivity
  7. list 分批_java 分批读取list
  8. 电竞蓝牙耳机推荐什么牌子好?性价比最高的电竞蓝牙耳机
  9. vue3小兔鲜商城项目学习笔记+资料分享03
  10. 链式法则求积分_链式法则