Oracle入门(十四.8)之迭代控制:基本循环Loop

、迭代控制:LOOP语句

循环多次重复一个语句或一系列语句。 

PL / SQL提供了以下几种类型的循环:

•没有全面条件执行重复操作的基本循环
•FOR循环,基于计数器执行迭代操作

•WHILE循环根据条件执行重复操作


二、基本循环

LOOP语句的最简单形式是基本(或无限)循环,它在关键字LOOP和END LOOP之间包含一系列语句。

当循环内部的语句必须至少执行一次时,使用基本循环。

(1)基本循环退出

每当执行流程到达END LOOP语句时,控制权就被传递给相应的引入它的LOOP语句。

即使在进入循环时EXIT条件已经满足,基本循环也允许执行其语句至少一次。 没有EXIT语句,循环将是无限的。

语法:

LOOP
 statement1;
 . . .
 EXIT [WHEN condition];
END LOOP;

(2)基本循环示例

在本例中,插入了CA的国家代码和蒙特利尔市的三个新的位置ID。

DECLARE
 v_countryid locations.country_id%TYPE := 'CA';
 v_loc_id locations.location_id%TYPE;
 v_counter NUMBER(2) := 1;
 v_new_city locations.city%TYPE := 'Montreal';
BEGIN
 SELECT MAX(location_id) INTO v_loc_id FROM locations
 WHERE country_id = v_countryid;
 LOOP
 INSERT INTO locations(location_id, city, country_id)
 VALUES((v_loc_id + v_counter), v_new_city, v_countryid);
 v_counter := v_counter + 1;
 EXIT WHEN v_counter > 3;
 END LOOP;
END;

(3)基本循环EXIT声明

您可以使用EXIT语句来终止循环。

控制权转到END LOOP语句后的下一个语句。 您可以将EXIT作为IF语句中的操作或循环内的独立语句。

DECLARE
 v_counter NUMBER := 1;
BEGIN
 LOOP
 DBMS_OUTPUT.PUT_LINE('The square of '
||v_counter||' is: '|| POWER(v_counter,2));
 v_counter := v_counter + 1;
 IF v_counter > 10 THEN
 EXIT;
 END IF;
 END LOOP;
END;

(4)基本循环EXIT语句规则

规则:
EXIT语句必须放在循环中。
•如果EXIT条件位于循环的顶部(在任何其他可执行语句之前)并且该条件初始为真,则循环退出并且循环中的其他语句从不执行。

•基本循环可以包含多个EXIT语句,但您应该只有一个EXIT点。

(5)基本循环退出时声明

使用WHEN子句可以有条件地终止循环。 遇到EXIT语句时,将评估WHEN子句中的条件。 如果条件产生TRUE,则循环结束并且控制传递到循环后面的下一个语句。

DECLARE
 v_counter NUMBER := 1;
BEGIN
 LOOP
 DBMS_OUTPUT.PUT_LINE('The square of '
||v_counter||' is: '|| POWER(v_counter,2));
 v_counter := v_counter + 1;
 EXIT WHEN v_counter > 10;
 END LOOP;
END;




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值