好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

Oracle PL / SQL loop循环

LOOP语句包含关键字LOOP和END LOOP之间的一系列语句,如下所示:

 
 LOOP 
   sequence_of_statements 
 END LOOP; 
 
 

执行语句序列,然后控制在循环顶部恢复。

我们可以在基本循环中使用CONTINUE和CONTINUE-WHEN语句。

要防止无限循环,必须使用EXIT或EXIT-WHEN语句。

 

EXIT语句

当遇到EXIT语句时,循环立即退出,并且控制传递到END LOOP之后的语句。

 DECLARE 
  x NUMBER := 0; 
BEGIN 
  LOOP 
    DBMS_OUTPUT.PUT_LINE('Inside loop:  x = ' || TO_CHAR(x)); 
    x := x + 1;  
    IF x > 10 THEN 
      EXIT; 
    END IF; 
  END LOOP; 
  DBMS_OUTPUT.PUT_LINE (' After loop:  x = ' || TO_CHAR(x)); 
END; 
/  

上面的代码生成以下结果:

 

EXIT-WHEN语句

遇到EXIT-WHEN语句时,将计算WHEN子句中的条件。

如果条件为真,则循环完成,控制传递到END LOOP之后的语句。

 DECLARE
  x NUMBER := 0; 
BEGIN 
  LOOP 
    DBMS_OUTPUT.PUT_LINE ('Inside loop:  x = ' || TO_CHAR(x)); 
    x := x + 1; 
    EXIT WHEN x > 10; 
  END LOOP; 
  DBMS_OUTPUT.PUT_LINE ('After loop:  x = ' || TO_CHAR(x)); 
END; 
/  

上面的代码生成以下结果:

 

标记PL / SQL循环

循环可以标记。

可选标签(由双尖括号括起来的未声明标识符)必须出现在LOOP语句的开头。

标签名称也可以显示在LOOP语句的末尾。

使用任何形式的EXIT语句,您不仅可以退出当前循环,而且可以退出任何封闭循环。

 DECLARE 
  s  PLS_INTEGER := 0; 
  i  PLS_INTEGER := 0; 
  j  PLS_INTEGER; 
BEGIN 
  <<outer_loop>> 
  LOOP 
    i := i + 1; 
    j := 0; 
    <<inner_loop>> 
    LOOP 
      j := j + 1; 
      s := s + i * j;
      EXIT inner_loop WHEN (j > 10); 
      EXIT outer_loop WHEN ((i * j) > 25); 
    END LOOP inner_loop; 
  END LOOP outer_loop; 
  DBMS_OUTPUT.PUT_LINE('The sum: ' || TO_CHAR(s)); 
END; 
/ 
 

上面的代码生成以下结果:

查看更多关于Oracle PL / SQL loop循环的详细内容...

  阅读:29次

上一篇

下一篇

第1节:Oracle PL / SQL CASE 语句    第2节:Oracle PL / SQL CHAR VARCHAR2    第3节:Oracle PL / SQL INTERVAL数据类型    第4节:Oracle PL / SQL loop循环    第5节:Oracle PL / SQL for loop循环    第6节:Oracle PL / SQL goto 语句    第7节:Oracle PL / SQL update更新数据    第8节:Oracle PL / SQL包    第9节:Oracle PL / SQL 存储过程    第10节:Oracle PL / SQL 函数    第11节:Oracle PL / SQL变量    第12节:Oracle PL / SQL变量范围    第13节:Oracle PL / SQL TIMESTAMP数据类型    第14节:Oracle PL / SQL 聚合函数大全    第15节:Oracle PL/SQL Views 视图    第16节:Oracle PL / SQL 表 table    第17节:Oracle PL/SQL Delete删除数据    第18节:Oracle PL/SQL Select 查询    第19节:Oracle PL/SQL 教程    第20节:Oracle PL / SQL注释    第21节:Oracle PL / SQL触发器Triggers    第22节:Oracle PL / SQL变量值    第23节:Oracle PL / SQL块结构    第24节:Oracle PL / SQL关联数组    第25节:Oracle PL / SQL文字    第26节:Oracle PL / SQL参数    第27节:Oracle PL / SQL运算符    第28节:Oracle PL/SQL NUMBER    第29节:Oracle PL/SQL if 语句    第30节:Oracle PL/SQL while循环    第31节:Oracle PL / SQL约束    第32节:Oracle PL / SQL 插入insert    第33节:Oracle PL / SQL数据类型    第34节:PL / SQL 分析函数大全