oracle 循环语句总结

搞了快一个月的oracle了,每天在谷歌+百度的大力搜索支持下,稍微学会了一点点。
今天下班做个小结:
主要有以下五种循环:Exit When、Loop、While、For(普通循环)、For(游标循环),下面举例一一说明(均为存储过程)。


1、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循环:

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循环:

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普通循环:

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游标循环:

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,插入几条数据,进行测试即可。

这篇文章目前有9条评论

  1. heroicYang 2010-05-14 00:04

    Oracle没使用过呢,一直在用SQL Server。OUT鸟… (囧)

    沙发王 !
    • akasuna 2010-12-08 20:49

      我也在用 SqlServer , SqlServer 下似乎只有 while 一种循环,不过已经够用。。。。

      • admin 2010-12-09 10:31

        我就研究了一个月的oracle,现在基本都忘干净了,数据库方面的现在都忘干净了。

  2. happymen 2010-06-22 17:11

    挺不錯的,收藏了 itlife365.com

    板凳党 !
  3. 夜伤 2010-10-16 22:22

    不错的主题哦`顶个

    地板砖 !
    • admin 2010-10-17 10:23

      谢谢支持,以后常来啊。

  4. temp4web 2011-07-01 16:55

    这个很好,今天借鉴了。谢谢。 你是硕士毕业一年了吗?

    4 #
  5. dreamerlinCSDN 2011-09-26 12:19

    学习了

    5 #
Leave a Reply

(必填项)

(必填项)

(可选)