OraclePLSQL之LOOP循环控制语句
在PL/SQL中可以使⽤LOOP语句对数据进⾏循环处理,利⽤该语句可以循环执⾏指定的语句序列。常⽤的LOOP循环语句包含3种形式:基本的LOOP、LOOP和LOOP。
LOOP语句的基本语法结构如下:
[<<label_name>>]
LOOP
<
END LOOP [label_name]
【语法说明】
<<label_name>>:LOOP结构的标签,是可选项。
LOOP:LOOP循环开始标志。
statement:LOOP语句中循环执⾏的语句序列。
END LOOP:LOOP循环结束标志,可以添加LOOP结构的标签。
1.基本的LOOP语句
实例:要求声明变量,每次循环都需要为变量增加数字1,并输出结果。当变量值⼤于3时,退出循环操作。
a、利⽤WHEN结束循环操作。
SQL> set serveroutput on;
SQL> --exit when
SQL> declare
2    v_rlt number(8):=-3;
3  begin
4    <<fst_loop>>
5    loop
6      dbms_output.put_line('v_rlt = '||v_rlt);
7      v_rlt:=v_rlt+1;
8      exit fst_loop when v_rlt > 3;
9    end loop;
10      dbms_output.put_line('LOOP循环已经结束!');
11  end;
12  /
v_rlt = -3
v_rlt = -2
v_rlt = -1
v_rlt = 0
v_rlt = 1
v_rlt = 2
v_rlt = 3
LOOP循环已经结束!
PL/SQL procedure successfully completed
b、利⽤IF...EXIT语句结束循环
SQL> --if exit
SQL> declare
2    v_rlt number(8):=-3;
3  begin
4    <<fst_loop>>
5    loop
6      dbms_output.put_line('v_rlt = '||v_rlt);
7      v_rlt:=v_rlt+1;
8      if v_rlt > 3 then
9        dbms_output.put_line('变量的值已经⼤于3,当前值为'||v_rlt);
10        exit fst_loop;
11      end if;
12    end loop fst_loop;
13      dbms_output.put_line('LOOP循环已经结束!');
14  end;
15  /
v_rlt = -3
v_rlt = -2
v_rlt = -1
v_rlt = 0
v_rlt = 1
v_rlt = 2
v_rlt = 3
变量的值已经⼤于3,当前值为4
LOOP循环已经结束!
PL/SQL procedure successfully completed
2、LOOP结构
该语句结构的相关语法如下:
[<<label_name>>]
WHILE boolean_expression
LOOP
<
END LOOP [label_name];
【语法说明】
boolean_expression:布尔表达式。
plsql developer怎么执行语句statement:语句序列,当boolean_expression为TRUE时,该语句序列可获得执⾏权。
c、LOOP结构
SQL> --loop
SQL> declare
2    v_rlt number(8):=-3;
3  begin
4    <<while_loop>>
5    while(v_rlt < 4)
6    loop
7      dbms_output.put_line('v_rlt = '||v_rlt);
8      v_rlt:=v_rlt+1;
9    end loop while_loop;
10      dbms_output.put_line('WHILE循环已经结束!');
11  end;
12
13  /
v_rlt = -3
v_rlt = -2
v_rlt = -1
v_rlt = 0
v_rlt = 1
v_rlt = 2
v_rlt = 3
WHILE循环已经结束!
PL/SQL procedure successfully completed
LOOP结构
[<<label_name>>]
FOR index_name IN
[ REVERSE ]
lower_bound .. upper_bound
LOOP
<
END LOOP [label_name];
【语法说明】
index_name:循环计数器,是⼀个变量,它可以得到当前的循环指数。需要注意的是,不能为其⼿⼯赋值。
REVERSE:可选项,指定循环⽅式。默认的循环⽅式由下标(lower_bound)到上标(upper_bound)。使⽤该选项则从上标界到下标界。
lower_bound:循环范围的下标界。
upper_bound:循环范围的上标界。
下标和上标之间的".."不能省略。
d、LOOP结构
SQL> --for..loop
SQL> begin
2    for v_rlt in -3..
3 loop
3      dbms_output.put_line('v_rlt = '||v_rlt);
4    end loop;
5      dbms_output.put_line('FOR循环已经结束!');
6  end;
7  /
v_rlt = -3
v_rlt = -2
v_rlt = -1
v_rlt = 0
v_rlt = 1
v_rlt = 2
v_rlt = 3
FOR循环已经结束!
PL/SQL procedure successfully completed

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。