zoukankan      html  css  js  c++  java
  • Oracle 循环语句

     1、基本循环

           在PL/SQL中最简单格式的循环语句是基本循环语句,这种循环语句以LOOP开始,以END LOOP结束,其语法如下: 

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

    注意:当编写基本循环时,一定要包含EXIT语句,否则PL/SQL会陷入死循环。


    当使用基本循环时,大家还应该定义循环控制变量,并且在循环体内修改循环控制变量的值。下面是使用基本循环的示例:

    CREATE TABLE temp(cola INT);
    
    DECLARE 
        i INT :=1;
    BEGIN 
         LOOP 
            INSERT INTO temp  VALUES(i);  
            EXIT WHEN i=10;
            i:=i+1;
         END LOOP;
    END;   
    


    2.WHILE循环

        基本循环至少要执行一次循环体内的语句,而对于WHILE循环来说,只有条件为TRUE时,才会执行循环体内的语句。WHILE循环以WHILE....LOOP开始,以END  LOOP 结束,其语法如下:

    WHILE condition LOOP
       statement1;
       statement2;
       ...
    END LOOP; 

    下面是使用WHILE循环的例子

    DECLARE 
        i INT :=1;
    BEGIN 
         WHILE i<=10 LOOP
            INSERT INTO temp VALUES(1);    
            i:=i+1;
          END LOOP;
    END; 


    3.FOR循环

    当使用基本循环或WHILE循环时,需要定义循环控制变脸,并且循环控制变量不仅可以使用NUMBER类型,也可以使用其它数据类型;而当使用FOR循环时,Oracle会隐含定义循环控制变量。FOR循环的语法如下:

    ----FOR循环的语法格式
    FOR  counter in [REVERSE]
       lower_bound .. upper_bound LOOP
          statement1;
          statement2;
          ...
      END LOOP; 

    如上所示,counter是循环控制变量,并且该变量由Oracle隐含定义,不需要显示定义:lower_bound和upper_bound分别对应于循环控制变量的上界值和下界值。默认情况下,当使用FOR循环时,每次循环时,循环控制变量会自动增一;如果指定REVERSE,那么每次循环时,循环控制变量会自动减一。使用FOR循环的示例如下:

    BEGIN	  
    FOR i  IN REVERSE  1 .. 10  LOOP
         INSERT INTO temp VALUES(i);
        END LOOP; 
    END;    

    如上所示,当执行以上PL/SQL块时,会为TEMP表插入10条记录。因为指定了REVERSE选项,所以被插入数据的顺序为10,9...,1。

    4、嵌套循环

      嵌套循环是指在一个循环语句之中,嵌入另一个循环语句,而标号(label)则用于标记嵌套块或嵌套循环。通过在嵌套循环中使用标号,可以区分内层循环和外层循环并且可以在内存循环中直接退出外层循环.在编写PL/SQL块时,可以使用<<lable_name>>定义标号,示例如下:

    DECLARE 
       result INT;
    BEGIN 
    	  <<outer1>>   
    	  FOR i IN 1..100 LOOP
    	    <<inner1>>
    	   FOR j IN 1..100 LOOP
    	       result:=i*j;
    	       EXIT outer1 WHEN result=1000;
    	      EXIT WHEN result=500;
    	    END LOOP inner1;
    	    dbms_output.put_line('outer=='||result); 
    	  END LOOP outer1;
    	     dbms_output.put_line(result); 
    END;


     


     

  • 相关阅读:
    cocos2dx for xna 基于地图的碰撞检测和信息提示
    cocos2dx for xna实现人物不同方向行走
    coco2dx for wp7之页面跳转特效
    cocos2dx for wp之精灵动作——Actions
    利用webxml来构建wp的天气预报
    cocos2dx for wp 之Box2D游戏是男人就坚持60M(一)
    cocos2dx for wp之TexturePackerGUI工具使用
    cocos2dx for wp 之Box2D的应用
    cocos2dx for xna 地图编辑
    WPF触发器(Trigger、DataTrigger、EventTrigger)
  • 原文地址:https://www.cnblogs.com/wuyida/p/6300420.html
Copyright © 2011-2022 走看看