您的位置:首页 > 数据库 > Oracle

Oracle 循环语句 总结

2010-01-24 13:44 337 查看
嘿嘿...今天这个循环语句把我弄得好晕啊!!不过在我Google半天后终于明白了,

所以今天把这些Oracle的循环语句总结
了一下。

loop
语句(至少被执行一次):

例子:

declare

  i int:=1;

begin

  loop

   dbms_output.put_line(i);

   exit when i=
100;

   i:=i+1;

 end loop;

end;

/

 

while语句(相当于把loop语句的退出条件放到了前面):

例子:

declare

   i int:=1;

begin

   while i<=
100 loop                     !!!
注意啦!!这里是布尔表达式
啊!!如果不知道啥是布尔表达式那就Google吧!!

     dbms_output.put_line(i);

     i:=i+1;

   end loop;

end;

/

 

for语句(这个嘛,分两种)

第一种、这种就是Oracle通常见到的for语句

例子:

begin

  for i in 1..100 loop

    dbms_output.put_line(i);

  end loop;

end;

/

第二种、这种就是只有在游标
里才可以看到的for循环(游标FOR循环
百年一见啊..),就是这个我最不明白,开始还以为语句写错了呢!呵呵...

例子:

(1)这个要先建立一个测试表


create table test(cou_no number,name varchar2(10),grade number);

(2)向测试表
里插入值

insert into test values(1,'scott',90);

insert into test values(2,'tiger',70);

insert into test values(1,'james',80);

insert into test values(2,'king',89);

(3)终于
可以运用游标的FOR循环语句
了!!!!这个语句主要是把cou_no列里值为”1“的grade值减10


    这语句里的大写单词的作用,主要是在更新时给行加锁
,以防多用户都一起改一个值。

declare

   cursor tt_cursor is

   select * from test FOR UPDATE;

begin

   for rec_cursor in tt_cursor loop

      if rec_cursor.cou_no=1 then

        update test set grade=grade-10 WHERE CURRENT OF tt_cursor;

      end if;

    end loop;

end;

/

 

总算总结完了,累死我了。。。。。。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息