Oracle循环中的EXIT、RETURN、CONTINUE解密

有时候编写Oracle中用游标等信息去循环处理逻辑的时候,对EXIT、RETURN、CONTINUE很容易搞混淆,网上搜了资料也不是很清楚,所以本人自己写了一小段代码测试了这三种用法。案例代码如下:

PROCEDURE P_TASK IS
  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 (‘123‘, ‘123‘);
        ELSE
          INSERT INTO FUCM_JG (SPBH, SPMCH) VALUES (‘222‘, ‘222‘);
        END IF;
        INSERT INTO FUCM_JG (SPBH, SPMCH) VALUES (‘333‘, ‘333‘);
      END LOOP;
    END LOOP;
    INSERT INTO FUCM_JG (SPBH, SPMCH) VALUES (‘444‘, ‘444‘);
  END P_TASK;

  

案例测试得到结果如下(分析的结果中注意本次循环和本循环的区别。本次循环是本循环执行的这次循环):

第一种:使用RETURN的时候,直接跳出存储过程或者函数

第二种:使用EXIT的时候,跳出本循环转而执行本循环的上一级循环的下一次循环。就此案例而言MY_CU.SPBH = ‘AAA‘为真的时候,直接跳出MY循环转而去执行MY_CU的下一次循环

第三种:使用CONTINUE的时候,本次循环后面的代码部分不再执行,转而执行本循环的下一次循环。就此案例而言MY_CU.SPBH = ‘AAA‘为真的时候,后面的代码不执行,继续MY的下一次循环

时间: 2024-11-04 23:31:53

Oracle循环中的EXIT、RETURN、CONTINUE解密的相关文章

linux 循环结构中的 break continue exit return区别

1 概述 在脚本的循环中,需要用到break,continue,exit.来控制循环.利用return来获取函数的返回值.本文将对这四个命令的使用做介绍 break [N]:提前结束第N层循环,最内层为第1层 continue [N]:提前结束第N层的本轮循环,而直接进入下一轮判断:最内层为第1层 exit 命令终止脚本 2  break continue exit   对比 2.1 break 和continue 测试 假设一个循环体内,总共嵌套了3层循环,总循环体N为3,break 和con

23 24 25 py中break和continue 循环中的else语句 exec和eval函数

第十课 跳出循环(break和continue) break :退出整个循环 不执行循环下面的其他语句 continue:忽略continue后面的所有的语句 然后会转向执行下一次的循环 也就是会执行下面的语句的 # coding:utf-8 x = 0 while x < 12: print(x,end = ',') x +=1 # 结果Wie : 0,1,2,3,4,5,6,7,8,9,10,11, print() y = 0 while y < 12: if y == 5: break;

break continue exit return 函数对比

break,continue,exit,用于循环结构中,控制循环的走向,return用于函数中,返回由shell函数得到的退出值给调用它的脚本. 命令 说明 break n n表示跳出循环的层次,如果省略n表示跳出整个循环 continue n n表示退到第n层继续循环,如果省略n表示跳过本次循环,忽略本次循环的剩余代码,进入循环的下一次循环 exit n 退出当前shell程序,并返回n.n也是可以省略 return 返回由shell函数得到的退出值给调用它的脚本 一.关于break,cont

[转帖]Shell脚本中的break continue exit return

Shell脚本中的break continue exit return 转自:http://www.cnblogs.com/guosj/p/4571239.html break结束并退出循环 continue在循环中不执行continue下面的代码,转而进入下一轮循环 exit退出脚本,常带一个整数给系统,如 exit 0 return在函数中将数据返回或返回一个结果给调用函数的脚本 我理解为:break是立马跳出循环:continue是跳出当前条件循环,继续下一轮条件循环:exit是直接退出整

return ,continue,break的用法与区别总结

1.return 语句的作用 (1) return 从当前的方法中退出,返回到该调用的方法的语句处,继续执行.       (2) return 返回一个值给调用该方法的语句,返回值的数据类型必须与方法的声明中的返回值的类型一致,可以使用强制类型转换来是数据类型一致.       (3) return 当方法说明中用void声明返回类型为空时,应使用这种格式,不返回任何值. 举例说明:return 是跳出整个方法 public static void GetNum() { for (int i

break return continue

1.return 语句的作用 (1) return 从当前的方法中退出,返回到该调用的方法的语句处,继续执行 (2) return 返回一个值给调用该方法的语句,返回值的数据类型必须与方法的声明中的返回值的类型一致,可以使用强制类型转换来是数据类型一致 (3) return 当方法说明中用void声明返回类型为空时,应使用这种格式,不返回任何值. 2.break语句的作用 (1) 只能在循环体内和switch语句体内使用break语句. (2) 当break出现在循环体中的switch语句体内时

循环中的let和const声明

一.循环中的let声明 每次循环的时候let声明都会创建一个新变量i,并将其初始化为i的当前值,所以循环内部创建的每个函数都能得到属于他们的i的副本. 最初的: for (var i = 0 ; i < 10 ; i++) { array.push(function(){    console.log(i) })  };    array.forEach(function(func){         func()    }) 优化后: var array=[];   for (var i =

vue 如何在循环中 &quot;监听&quot; 的绑定v-model数据

vue 如何在循环中 "监听" 的绑定v-model数据 阅读目录 vue 如何在循环中 "监听" 的绑定v-model数据 1. 普通属性的值进行监听 2. 监听对象的变化 3. 监听对象中具体属性值的变化 4. vue 如何在循环中 "监听" 的绑定v-model数据 回到顶部 1.普通属性的值进行监听 vue中提供了一个watch方法,它用于观察vue实列上的数据变动,来响应数据的变化. 下面我们来分别学习下使用watch对对象的属性值进行

JS for循环中的label

let num = 0; for (let i = 0; i < 10; i ++) { for (let j = 0; j < 10; j ++) { if (i === 5 && j === 5) { break; } num ++; } } console.log(num); // 95 条件成立break跳出的是内部的循环 如果条件成立要跳出全部循环该怎么做? let num = 0; out: for (let i = 0; i < 10; i ++) { fo