http://www.crossyou.cn/oracle-loop-statement-summary.htm

主要有以下五种循环:Exit When、Loop、While、For(普通循环)、For(游标循环),下面举例一一说明(均为存储过程)。

1、Exit When循环:

源码复制打印关于
  1. create or replace procedure proc_test_exit_when is
  2. i number;
  3. begin
  4. i:=0;
  5. LOOP
  6. Exit When(i>5);
  7. Dbms_Output.put_line(i);
  8. i:=i+1;
  9. END LOOP;
  10. end proc_test_exit_when;
create or replace procedure proc_test_exit_when is
i number;
begin
i:=0;
LOOP
Exit When(i>5);
Dbms_Output.put_line(i);
i:=i+1;
END LOOP;
end proc_test_exit_when;

2、Loop循环:

源码复制打印关于
  1. create or replace procedure proc_test_loop is
  2. i number;
  3. begin
  4. i:=0;
  5. loop
  6. i:=i+1;
  7. dbms_output.put_line(i);
  8. if i>5 then
  9. exit;
  10. end if;
  11. end loop;
  12. end proc_test_loop;
create or replace procedure proc_test_loop is
i number;
begin
i:=0;
loop
i:=i+1;
dbms_output.put_line(i);
if i>5 then
exit;
end if;
end loop;
end proc_test_loop;

3、While循环:

源码复制打印关于
  1. create or replace procedure proc_test_while is
  2. i number;
  3. begin
  4. i:=0;
  5. while i<5 loop
  6. i:=i+1;
  7. dbms_output.put_line(i);
  8. end loop;
  9. end proc_test_while;
create or replace procedure proc_test_while is
i number;
begin
i:=0;
while i<5 loop
i:=i+1;
dbms_output.put_line(i);
end loop;
end proc_test_while;

4、For普通循环:

源码复制打印关于
  1. create or replace procedure proc_test_for is
  2. i number;
  3. begin
  4. i:=0;
  5. for i in 1..5 loop
  6. dbms_output.put_line(i);
  7. end loop;
  8. end proc_test_for;
create or replace procedure proc_test_for is
i number;
begin
i:=0;
for i in 1..5 loop
dbms_output.put_line(i);
end loop;
end proc_test_for;

5、For游标循环:

源码复制打印关于
  1. create or replace procedure proc_test_cursor is
  2. userRow test%rowtype;
  3. cursor userRows is
  4. select * from test;
  5. begin
  6. for userRow in userRows loop
  7. dbms_output.put_line(userRow.id||','||userRow.Name||','||userRows%rowcount);
  8. end loop;
  9. end proc_test_cursor;
create or replace procedure proc_test_cursor is
userRow test%rowtype;
cursor userRows is
select * from test;
begin
for userRow in userRows loop
dbms_output.put_line(userRow.id||','||userRow.Name||','||userRows%rowcount);
end loop;
end proc_test_cursor;

上面所示为存储过程相应代码,你可以通过如下方式进行测试:

进入pl/sql, 执行 文件->新建->程序窗口->空白,拷贝以上各段代码,到pl/sql空白窗口中,安F8执行编译。

再 执行 文件->新建->命令窗口 进入命令窗口 执行一下  set serveroutput on 这句代码,然后,输入exec 相应存储过程,ok。

第5中循环 要求新建一个名为test的表 字段 id、name,插入几条数据,进行测试即可。

========

http://q-wong.iteye.com/blog/502823

不能。无break和continue的语法。  
  break可用exit代替。  
  loop  
      ...  
      exit   when   ...;  
      ...  
  end   loop;      
  continue和用自定义异常代替。  
  loop  
      begin  
          ...  
          raise   my_ex;  
          ...  
      exception  
          when   others   then   null;  
      end;  
  end   loop;

exit when是跳出整个循环,不是跳出本轮循环。相当于C的break。

BEGIN
<<OUTER>>
FOR I IN 1 .. 10 LOOP
<<INNER>>
FOR  J IN 1..20 LOOP
     DBMS_OUTPUT.PUT_LINE('J IS :'|| J);
     EXIT WHEN J = 10;
END LOOP INNER;
   DBMS_OUTPUT.PUT_LINE('I IS:'||I);
  EXIT WHEN I = 5;
END LOOP OUTER;

END;

oracle 循环语句总结(breakcontinue)相关推荐

  1. oracle循环语句loop,oracle循环语句loop

    Oracle循环语句的写法有哪些呢 如果您对Oracle循环语句方面感兴趣的话,不妨一看. loop循环: 1. create or replace procedure pro_test_loop i ...

  2. oracle嵌套三层循环语句,在存储过程中执行3种oracle循环语句

    http://www.cnblogs.com/coprince/p/3443219.html create or replace procedure pr_zhaozhenlong_loop /* 名 ...

  3. Oracle循环语句

    循环插入记录 --LOOP DECLAREv_num NUMBER(2) := 0; BEGINLOOPINSERT INTO SCOTT.A VALUES (11, '123');v_num := ...

  4. oracle循环语句大全,oracle循环语句小结

    主要有以下五种循环:Exit When.Loop.While.For(普通循环).For(游标循环),下面举例一一说明(均为存储过程). 1.Exit When循环: create or replac ...

  5. oracle 语句循环,oracle的for循环语句

    Oracle循环语句的写法有哪些呢 如果您对Oracle循环语句方面感兴趣的话,不妨一看. loop循环: 1. create or replace procedure pro_test_loop i ...

  6. mysql里条件语句和循环语句_MySQL与Oracle 差异比较之四条件循环语句

    循环语句 编号 类别 oracle Mysql 注释 1 IF语句使用不同 IFiv_weekly_day = 'MON'THEN ii_weekly_day := 'MON'; ELSIFiv_we ...

  7. oracle学习--循环语句

    oracle学习--循环语句 loop循环: create or replace procedure pro_test_loop is i number; begin i:=0; loop   i:= ...

  8. oracle sql循环判断语句怎么写,Oracle 非常详细的 PL/SQL入门教程,PL/SQL语法格式/循环语句/条件判断/异常处理...

    PL/SQL入门教程目录 Oracle PL/SQL入门教程,PL/SQL语法格式/循环语句/条件判断/异常处理 一.PL/SQL简介 1.PL/SQL简介 1.PL/SQl是过程语言PL与结构化语言 ...

  9. php中可以实现分支,PHP中的分支及循环语句

    这次实践的都是PHP7的语法. 感觉是以前的5差别不是那么大,只是希望越来越快吧. $looking = isset($_GET['title']) || isset($_GET['author']) ...

最新文章

  1. 高精度垃圾分类模型开发与硬件集成
  2. struts2之OGNL用法
  3. 【干货】从零开始做运营(超详细脑图)
  4. Promise详解,相信你看完我这篇文章简单的Promise使用方式基本上就全会了
  5. mysql字符集设置_mysql字符集设置
  6. pat 乙级 1028 人口普查(C++)
  7. 干货收藏!一文看懂8个常用Python库从安装到应用
  8. 实例讲解Nginx下的rewrite规则 来源:Linux社区
  9. Linux文件系统性能测试工具fdtree和iozone
  10. modulenotfounderror python_python程序在命令行执行提示ModuleNotFoundError: No module named 'XXX' 解决方法...
  11. 记2020年秋季学期的微波期末考试
  12. 2021 版 Java 成神指路
  13. PHP架构师必备技术视频合集
  14. linux清理缓存和垃圾,CentOS等Linux系统如何清理系统垃圾和日志?
  15. C++ rb_tree红黑树
  16. Java汉字转拼音工具类(支持首字母和全拼)
  17. Android刘海屏、水滴屏全面屏适配详解,android开发权威指南
  18. 成功中标 荣联为中国检科院打造一站式生信服务平台
  19. django改变用户头像
  20. jdbc cancel mysql_当执行Statement的cancel()之后发生了什么?

热门文章

  1. 144. Binary Tree Preorder Traversal 二叉树的前序遍历
  2. Django Model 自动生成 E-R 图
  3. 104. Maximum Depth of Binary Tree 二叉树的最大深度
  4. 11.2.7 练习题
  5. IDEA 运行键是灰色
  6. 《算法竞赛入门经典》 例题 4-4 信息编码 (Message Decoding,ACM,ICPC World Finals 1991,UVa 213)
  7. 【Tools】VNC Server 6.7安装详解
  8. 【Libevent】Libevent学习笔记(三):事件循环
  9. 【Linux】一步一步学Linux——chown命令(112)
  10. php time相差12小时_PHP获取时间比实际时间少8小时的问题