zoukankan      html  css  js  c++  java
  • PL/SQL 循环语句

    1、基本 LOOP 循环语句

    语法:

    LOOP 
       语句序列; 
    END LOOP;
    
    其中,语句序列中需要一个EXIT语句或一个EXIT WHEN语句来中断循环。

    实例:

    DECLARE 
       x number(2) := 10; 
    BEGIN 
       LOOP 
          dbms_output.put_line(x); 
          x := x + 10; 
          IF x > 50 THEN 
             exit; 
          END IF; 
       END LOOP; 
       dbms_output.put_line('LOOP结束: ' || x); 
    END;
    或者

    使用EXIT WHEN语句来代替EXIT语句:
    DECLARE 
       x number(2) := 10; 
    BEGIN 
       LOOP 
          dbms_output.put_line(x); 
          x := x + 10; 
          EXIT WHEN x > 50; 
       END LOOP; 
       dbms_output.put_line('LOOP结束: ' || x); 
    END;

    2、WHILE LOOP 语句

    语法:

    WHILE 条件 LOOP 
       语句序列; 
    END LOOP;

    实例:

    DECLARE 
       x number(2) := 10; 
    BEGIN 
       WHILE x < 20 LOOP 
          dbms_output.put_line(x); 
          x := x + 1; 
       END LOOP; 
    END;

    3、FOR LOOP 语句

    语法:

    FOR counter IN initial_value .. final_value LOOP 
       语句序列; 
    END LOOP;
    
    说明:
       循环变量或计数器的initial_value和final_value可以是文字,变量或表达式,但必须对数字求值。 否则,PL/SQL引发预定义的异常VALUE_ERROR;
       initial_value不必为1; 但是,循环计数器增量(或减量)必须为1;
       PL/SQL允许在运行时动态地确定循环范围。

    实例:

    DECLARE 
       x number(2); 
    BEGIN 
       FOR x IN 10 .. 20 LOOP 
          dbms_output.put_line(x); 
      END LOOP; 
    END; 
    
    输出结果:
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20

    反转FOR LOOP语句:
    
    DECLARE 
       x number(2) ; 
    BEGIN 
       FOR x IN REVERSE 10 .. 20 LOOP 
          dbms_output.put_line(x); 
       END LOOP; 
    END; 
    
    输出结果:
    20
    19
    18
    17
    16
    15
    14
    13
    12
    11
    10

    注:可在任何其他基本循环中使用一个或多个循环,如:whilefor循环。

    4、标记PL/SQL循环

    标签使用双尖括号(<<>>)括起来,并显示在LOOP语句的开头。标签名称也可以出现在LOOP语句的末尾。

    实例:

    实例1:
    DECLARE 
       i number(1); 
       j number(1); 
    BEGIN 
       << outer_loop >> 
       FOR i IN 1..3 LOOP 
          << inner_loop >> 
          FOR j IN 1..3 LOOP 
             dbms_output.put_line('i = '|| i || ', j = ' || j); 
          END loop inner_loop; 
       END LOOP outer_loop; 
    END;
    
    实例2:
    DECLARE 
       x number(2) := 0; 
    BEGIN 
       << mark_loop >>
       x := x + 1;
       IF x < 10 THEN
         dbms_output.put_line(x);
         GOTO mark_loop;
       END IF;
    END;
  • 相关阅读:
    CSS学习笔记 糖不苦
    Servlet与HTTP介绍学习 糖不苦
    new 的原理和实现 糖不苦
    HTML学习笔记 糖不苦
    事务的概念,以及事务在JDBC编程中处理事务的步骤 糖不苦
    前端JS获取用户位置 糖不苦
    数据接口请求异常:parsererror 糖不苦
    所有CSS字体属性 糖不苦
    jQuery CSS样式方法
    jQuery效果隐藏/显示,淡入/淡出,滑动,动画
  • 原文地址:https://www.cnblogs.com/Jimc/p/9540901.html
Copyright © 2011-2022 走看看