oracle循环语句Loop

  循环语句

① LOOP循环(基本循环)

LOOP 

.......

END LOOP;

两种退出方式:IF.....EXIT        EXIT.....WHEN.......

例如:

DECLARE

x number:=0 ;

BEGIN

LOOP

IF x>=3 THEN

EXIT;

END IF;

x:=x+1;

DBMS_OUTPUT.PUT_LINE('循环内部x的值为:'||x);

END LOOP;

DBMS_OUTPUT.PUT_LINE('循环外部x的值为:'||x);

END;

 

其中,

 

IF x>=3 THEN EXIT;

END IF;

<==> EXIT WHEN x>=3;

 

 

② WHILE循环:

WHILE expression LOOP

.........

END LOOP;

 

 

        例如:

DECLARE

x number:=0 ;

BEGIN

WHILE x<=3 LOOP

x:=x+1;

DBMS_OUTPUT.PUT_LINE('循环内部x的值为:'||x);

END LOOP;

DBMS_OUTPUT.PUT_LINE('循环外部x的值为:'||x);

END;

 

③ FOR循环:

FOR counter IN[REVERSE] start_value ..end_value LOOP

...............

END LOOP;

FOR循环内的计数器不需要申明,计数器默认为递增,加REVERSE后为递减

 

例如:

BEGIN

FOR i IN 1..5 LOOP   --计数器 未显示申明,i为number类型

DBMS_OUTPUT.PUT_LINE('i='||i);

END LOOP;

END;

 

输出:1 2 3 4 5

蓝色部分改成FOR i IN REVERSE 1..5 LOOP,输出 5 4 3 2 1

FOR循环的步长只能是1-1,不能是其他值,并且循环内部不能对计数器赋值, start_value和end_value可以是变量

例如,下面这段代码试图在循环内部对计数器赋值,结果出现“必须申明标识符I”

BEGIN
  FOR counter IN 1..5 LOOP
  DBMS_OUTPUT.PUT_LINE(counter);
  i:=i+1;
  END LOOP;
  END;

 

④ 标记+GOTO实现循环

标记名用<<>>括起来,不是书名号

 

例如:

DECLARE

i NUMBER:=0;

BEGIN

<<repeat_loop>>

i:=i+1;

DBMS_OUTPUT.PUT_LINE('i的值为:'||i);

IF i<=3 THEN

GOTO repeat_loop;

END IF;

END;

注意:使用循环时注意不要产生死循环,循环嵌套时可使用标签清晰的指明跳出那一级循环。

(转载请注明出处:[url=http://www.live588.org]淘金盈[/url])

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值