PL/SQL 循环语句

来源:互联网 发布:mac战网如何更改地区 编辑:程序博客网 时间:2024/05/19 18:15

 1. LOOP...END LOOP循环

    LOOP循环是最基本的循环,也称为无条件循环。在这类型的循环中如果没有指定EXIT语句,循环将一直运行。

SQL> set serveroutput onSQL> declare  2  i number:=1;  3  begin  4  loop  5  dbms_output.put_line(i || '的平方数为' || i*i);  6  i:=i+1;  7  exit when i>10;  8  end loop;  9  end; 10  /

结果:

1的平方数为1
2的平方数为4
3的平方数为9
4的平方数为16
5的平方数为25
6的平方数为36
7的平方数为49
8的平方数为64
9的平方数为81
10的平方数为100

PL/SQL 过程已成功完成。


2.WHILE循环

  与LOOP循环的不同之处在于WHILE循环在循环的顶部包括了判断条件,这样在每次执行循环时,都将判断该条件。

SQL> set serveroutput onSQL> declare  2  i number:=1;  3  begin  4  while i<50 loop  5    if mod(i,3)=0 then  6  dbms_output.put_line(i || ' ');  7  end if;  8     i:=i+1;  9  end loop; 10  end; 11  /

结果:

3
6
9
12
15
18
21
24
27
30
33
36
39
42
45
48

PL/SQL 过程已成功完成。


3.FOR循环

    为了防止出现死循环,需要在循环内不断地修改判断条件。而FOR循环则使用了一个循环计数器,并通过它来控制循环执行地次数。

    3.1计数器从小到大计数

SQL> set serveroutput onSQL> declare  2  sum_num number:=0;  3  begin  4     for i in 1..100 loop  5   sum_num:=sum_num+i;  6  end loop;  7  dbms_output.put_line(sum_num);  8  end;  9  /

结果:

5050

PL/SQL 过程已成功完成。


 3.2 计数器从大到小计数

SQL> set serveroutput onSQL> declare  2  begin  3      for i in reverse 1..20 loop  4        if mod(i,3)=0 then  5  dbms_output.put_line(i);  6  end if;  7  end loop;  8  end;  9  /

结果:

18
15
12
9
6
3

PL/SQL 过程已成功完成。


0 0