当前位置:   article > 正文

oracle 存储过程loop退出循环,结束当前循环_oracle loop continue

oracle loop continue

loop退出循环体:

  1. 1. goto next; <<next>> null;
  2. 2. exit when boolean表达式;

示例:

  1. CREATE OR REPLACE PROCEDURE pro_end_loop(i_num NUMBER) AS
  2. v_ind NUMBER DEFAULT 1;
  3. v_num NUMBER;
  4. BEGIN
  5. v_num := i_num;
  6. dbms_output.put_line('i_num='||i_num);
  7. -- 1. 使用exit when boolean表达式 退出循环
  8. LOOP
  9. --v_ind值为5时, 退出循环体
  10. EXIT WHEN v_ind =5;
  11. v_ind := v_ind + 1;
  12. dbms_output.put_line('v_ind='||v_ind||', i_num='||i_num);
  13. END LOOP;
  14. -- 2.使用goto next
  15. LOOP
  16. v_ind := v_ind + 1;
  17. IF v_ind =10 THEN
  18. -- v_ind值为10时, 流程跳转到<<next>>的位置
  19. GOTO NEXT;
  20. END IF;
  21. END LOOP;
  22. dbms_output.put_line('leval loop');
  23. --后面的null必须, next后面需要跟一个语句
  24. <<NEXT>> NULL;
  25. dbms_output.put_line('leval loop to next');
  26. END pro_end_loop;

loop结束当前循环,开始下一轮循环

1. continue (测试数据库为12c)

示例:

  1. CREATE OR REPLACE PROCEDURE pro_end_loop(i_num NUMBER) AS
  2. v_ind NUMBER DEFAULT 1;
  3. v_num NUMBER;
  4. BEGIN
  5. v_num := i_num;
  6. dbms_output.put_line('i_num='||i_num);
  7. dbms_output.put_line('使用continue中断当前循环,开始下一个循环');
  8. LOOP
  9. dbms_output.put_line('into loop continue before');
  10. v_ind := v_ind + 1;
  11. IF v_ind =3 THEN
  12. dbms_output.put_line('continue block');
  13. -- v_ind的值为3时, 结束当前循环, 进入下一次循环
  14. CONTINUE;
  15. END IF;
  16. dbms_output.put_line('into loop continue after');
  17. END LOOP;
  18. END pro_end_loop;

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/木道寻08/article/detail/892774
推荐阅读
相关标签
  

闽ICP备14008679号