zoukankan      html  css  js  c++  java
  • Oracle循环中的EXIT、RETURN、CONTINUE解密

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    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的下一次循环

  • 相关阅读:
    1
    前端必读书籍推荐
    cn
    网站爬虫优化
    es学习
    适应移动端
    chrome禁止缓存,每次都最新的
    vue 源码环境
    [Java] 设计模式之工厂系列 04 (自定义模拟 spring 读取xml文件 beanFactory)
    [Java] JDOM 读取 xml 文件 示例程序初步
  • 原文地址:https://www.cnblogs.com/aipan/p/8080161.html
Copyright © 2011-2022 走看看