• 技术文章 >数据库 >Oracle

    oracle存储过程中的循环语句有哪些

    长期闲置长期闲置2022-06-10 15:49:28原创238

    oracle存储过程中的循环语句:1、LOOP循环,语法为“loop 循环体;EXIT WHEN 结束循环条件表达式;END LOOP;”;2、WHILE循环,语法为“while 条件表达式 loop 循环语句;end loop;”;3、for循环,语法为“for 变量 IN (reverse) 计数器下限值...计数器上限值 LOOP 循环体;END LOOP;”。

    本教程操作环境:windows10系统、Oracle 12c版、Dell G3电脑。

    oracle存储过程中的循环语句有哪些

    当程序需要反复执行某一操作时,就必须使用循环结构。PL/SQL 中的循环语句主要包括LOOP语句、WHERE语句和FOR语句3种。

    LOOP语句

    LOOP语句会先执行一次循环体,然后再判断EXIT WHEN关键字后面的条件表达式是ture还是false,为true的时候退出循环体,否则程序将再次执行循环体。

    基本语法:

    loop
        A;
        EXIT WHEN B;
    END LOOP;

    A: 代表循环体中的sql语句,可以是一句也可能是多句,这是循环体核心部分,这些语句至少被执行一遍。

    B: 循环结束条件表达式,为ture时,退出循环,否则再次执行循环体。

    代码示例:

    -- Created on 2020/12/16 by GUO 
    declare 
      i int:= 0;
    begin
      loop
        i:=i+1;
        dbms_output.put_line(i);
        EXIT WHEN i > 3;
      END LOOP;
    end;

    运行结果:

    20.png

    实战示例:

    使用Loop+游标的时候,取游标当中的值,必须重新赋值一遍,要不然会报错。

    -- Created on 2020/12/17 by GUO 
    declare
      cursor user is
        select * from user_table;
      user1 user_table%rowtype;
    begin
      open user;
      loop
        fetch user into user1;
        exit when user%notfound;
        dbms_output.put_line('用户名称:' || user1.USER_NAME);
        dbms_output.put_line('用户年龄:' || user1.USER_AGE);
      end loop;
      close user; --关闭游标
    end;

    WHILE语句

    在执行之前,首先要判断条件表达式的值是否为true,true则执行循环体,否则退出WHILE循环,继续执行循环后面的代码。

    基本语法:

    while a loop
      b;
    end loop;

    A: 表示一个条件表达式,当值为true时,程序执行循环体,否则退出。

    B: 循环体内的sql语句。

    代码示例:

    -- Created on 2020/12/17 by GUO 
    declare
      i int := 0;
    begin
      while i < 3 loop
        i := i + 1;
        dbms_output.put_line(i);
      end loop;
    end;

    运行结果:

    21.png

    实战示例:

    -- Created on 2020/12/17 by GUO 
    declare
      cursor user is
        select * from user_table;
      user1 user_table%rowtype;
    begin
      open user;
      fetch user into user1;
      while(user%found)loop
      dbms_output.put_line('用户名称:' || user1.USER_NAME);
      fetch user into user1;
      end loop;
    end;

    FOR语句

    FOR语句是一个可提前设置循环次数的循环控制语句,它有一个循环计数器,通常是一个整型变量,通过这个计数器来控制循环次数。

    基本语法:

    for A IN (reverse) B...C LOOP
       D;
     END LOOP;

    A: 表示一个变量,通常为证书类型,用来作为计数器,默认值是递增的,当循环当中使用reverse关键字时,就会循环递减。

    B: 计数器下限值,当计数器的值小于下限值的时候,终止循环。

    C: 计数器上限值,当计数器的值大于上限值的时候,终止循环。

    D: 循环体。

    代码示例:

    -- Created on 2020/12/17 by GUO 
    declare 
      i int := 0;
    begin
      for i IN reverse 1..5 LOOP
        dbms_output.put_line(i);
      END LOOP;
    end;

    运行结果:

    22.png

    实战示例:

    配合游标使用

    -- Created on 2020/12/17 by GUO 
    declare
      cursor user is
        select * from user_table;
    begin
      for user1 in user loop
      dbms_output.put_line('用户名称:'||user1.USER_NAME);
      dbms_output.put_line('用户年龄:'||user1.USER_AGE);
      end loop;
    end;

    推荐教程:《Oracle视频教程

    以上就是oracle存储过程中的循环语句有哪些的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:oracle
    上一篇:oracle字符串怎么反转 下一篇:oracle删除数据的命令是什么
    20期PHP线上班

    相关文章推荐

    • 【活动】充值PHP中文网VIP即送云服务器• oracle中when语句怎么用• oracle中有回滚吗• 归纳总结Oracle查询执行计划• oracle中rowid怎么用• oracle中having语句怎么用
    1/1

    PHP中文网