oracle下巧用bulk collect实现cursor批量fetch的sql语句

来源:asp之家 时间:2009-03-04 10:43:00 

在一般的情况下,使用批量fetch的几率并不是很多,但是Oracle提供了这个功能我们最好能熟悉一下,说不定什么时候会用上它。

declare
cursor c1 is select * from t_depart;
v_depart t_depart%rowtype ;
type v_code_type is table of t_depart.depart_code%type ;
v_code v_code_type ;
type v_name_type is table of t_depart.depart_name%type ;
v_name v_name_type ;
begin
open c1;
fetch c1 bulk collect into v_code , v_name ;
for i in 1..v_code.count loop
dbms_output.put_line(v_code(i)||' '||v_name(i));
end loop;
close c1;
end;


通过上面的这个列子大家可以发现如果列很多的话,为每一列定义一个集合似乎有些繁琐,可以把集合和%rowtype结合起来一起使用简化程序!


declare
cursor c1 is select * from t_depart;
type v_depart_type is table of t_depart%rowtype ;
v_depart v_depart_type ;
begin
open c1;
fetch c1 bulk collect into v_depart ;
for i in 1..v_depart.count loop
dbms_output.put_line(v_depart(i).depart_code||' '||
v_depart(i).depart_name);
end loop;
close c1;
end;


在输出结果时既可以使用集合的count属性和可以使用first和last,在引用%rowtype类型的内容时还有一个需要注意的地方是v_depart(i).depart_code,而不是v_depart.depart_code(i),当然没有这样的写法,即使有意义也并不一样。


declare
cursor c1 is select * from t_depart;
type v_depart_type is table of t_depart%rowtype ;
v_depart v_depart_type ;
begin
open c1;
fetch c1 bulk collect into v_depart ;
for i in v_depart.first..v_depart.last loop
dbms_output.put_line(v_depart(i).depart_code||' '||
v_depart(i).depart_name);
end loop;
close c1;
end;


标签:bulk,collect,cursor,批量,Oracle
0
投稿

猜你喜欢

  • 解决 IE6 内存泄露的另类方法

    2008-07-06 23:05:00
  • python制作的天气预报小工具(gui界面)

    2022-04-03 17:20:42
  • pytorch载入预训练模型后,实现训练指定层

    2022-01-22 12:40:35
  • MySQL中索引优化distinct语句及distinct的多字段操作

    2024-01-18 20:43:38
  • 如何删除Git本地仓库和删除GitHub上的Git远程仓库Repository(推荐)

    2023-01-30 16:07:59
  • 如何批量消除网页超级链接上的“虚线框”

    2008-10-15 12:55:00
  • 最炫Python烟花代码全解析

    2022-02-16 13:07:53
  • 使用Python获取网段IP个数以及地址清单的方法

    2021-02-25 03:28:21
  • 浅谈MySQL8.0 异步复制的三种方式

    2024-01-29 00:26:46
  • 使用python实现数组、链表、队列、栈的方法

    2021-01-03 22:40:20
  • 一个非常简单好用的Python图形界面库(PysimpleGUI)

    2022-12-25 08:17:09
  • vue实现二维码扫码功能(带样式)

    2024-04-10 10:31:39
  • Git操作规范之tag的使用技巧详解

    2022-07-30 05:10:54
  • 浅谈Python3实现两个矩形的交并比(IoU)

    2021-09-06 19:31:56
  • asp从Excel中筛选符合条件的记录保存至新的Excel中

    2007-09-06 19:20:00
  • JavaScript ParseFloat()方法

    2024-04-29 13:35:48
  • Navicat for MySQL 与 MySQL-Front比较

    2009-02-12 17:33:00
  • JS 类型转换常见方法小结

    2024-04-17 09:49:17
  • php实现的简单检验登陆类

    2023-11-22 06:13:33
  • Python使用shutil模块实现文件拷贝

    2021-02-01 14:46:28
  • asp之家 网络编程 m.aspxhome.com