首页数据库oracle存储过程里面的循环语句有什么?

oracle存储过程里面的循环语句有什么?

时间2024-03-22 03:33:03发布访客分类数据库浏览479
导读:这篇文章给大家分享的是“oracle存储过程里面的循环语句有什么?”,文中的讲解内容简单清晰,对大家认识和了解都有一定的帮助,对此感兴趣的朋友,接下来就跟随小编一起了解一下“oracle存储过程里面的循环语句有什么?”吧。...
这篇文章给大家分享的是“oracle存储过程里面的循环语句有什么?”,文中的讲解内容简单清晰,对大家认识和了解都有一定的帮助,对此感兴趣的朋友,接下来就跟随小编一起了解一下“oracle存储过程里面的循环语句有什么?”吧。


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;
    

运行结果:

实战示例:

使用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;
    

运行结果:

实战示例:

-- 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;
    

运行结果:

实战示例:

配合游标使用

-- 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存储过程里面的循环语句有什么?”的相关知识,感谢各位的阅读,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注网络,小编每天都会为大家更新不同的知识。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!

oracle

若转载请注明出处: oracle存储过程里面的循环语句有什么?
本文地址: https://pptw.com/jishu/649966.html
oracle中动态语句有哪些呢? oracle中分区表有什么用呢?

游客 回复需填写必要信息