oracle从游标批量提取数据

本文介绍PL/SQL中如何使用fetch bulk collect into一次性获取游标中的所有数据,并通过limit子句限制每次获取的数据条数,提高了数据处理效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

来源于:http://blog.youkuaiyun.com/ceclar123/article/details/7974973

 

传统的fetch into一次只能取得一条数据,使用fetch bulk collect into可以一次从游标中取得所有数据,使用limit子句可以限制一次取的数据条数

1、fetch bulk collect into


 
  1. begin  
  2.   declare     
  3.     cursor c_dept is select * from dept;  
  4.     type dept_record is table of dept%rowtype;  
  5.     v_dept dept_record;  
  6.   begin  
  7.     open c_dept;  
  8.     fetch c_dept bulk collect into v_dept;  
  9.     close c_dept;  
  10.     for i in 1.. v_dept.count loop  
  11.         dbms_output.put_line('部门名称:'||v_dept(i).dname||'   部门地址:'||v_dept(i).loc);       
  12.     end loop;  
  13.   end;  
  14. end;  


2、使用limit子句限制提取的行数


 
    1. begin  
    2.   declare     
    3.     cursor c_dept is select * from dept;  
    4.     type dept_record is table of dept%rowtype;  
    5.     v_dept dept_record;  
    6.   begin  
    7.     open c_dept;  
    8.     loop  
    9.       exit when c_dept%NOTFOUND;  
    10.       fetch c_dept bulk collect into v_dept limit 3;    
    11.       dbms_output.put_line('-----------------------------------------------------------');     
    12.         for i in 1.. v_dept.count loop  
    13.             dbms_output.put_line('部门名称:'||v_dept(i).dname||'   部门地址:'||v_dept(i).loc);       
    14.         end loop;  
    15.     end loop;  
    16.     close c_dept;  
    17.   end;  
    18. end;  

转载于:https://www.cnblogs.com/ys-wuhan/p/6007698.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值