bulk collect的作用
         将查询出来的多条记录以集合的方式打包。
举例:
         创建表            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2010-11-24 16:15:42
                            
                                1265阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            oracle 在9i版本之后提供了一种批量更新方法,可以迅速的提高大数据量的批量更新。
 
CREATE OR Replace PROCEDURE PRO_COLLECT_TEST IS   TYPE TP_TYPE IS TABLE OF APPS.SY            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2011-11-21 20:33:31
                            
                                1035阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            /*  fetch bulk collect into 的使用格式是:fetch some_cursor bulk collect into col1, col2 limit xxx。  col1、col2 是声明的集合类型变量,xxx 为每次取数据块的大小(记录数),  相当于缓冲区的大小,可以不指定 limit xxx 大小*/-- 1.给一张表加数据,以便测试用            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2013-12-22 23:48:38
                            
                                1986阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            Oracle8i中首次引入了Bulk Collect特性,该特性可以让我们在PL/SQL中能使用批查询,批查询在某些情况下能显著提高查询效率。现在,我们对该特性进行一些简单的测试和分析。
1. 首先,我们创建一个表,并插入100000条记录在SQL/Plus中执行下列脚本:
drop table empl_tbl/create table empl_tbl(last_name varchar2            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                            精选
                                                        
                            2011-09-06 11:08:10
                            
                                570阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            通过bulk collect减少loop处理的开销采用bulk collect可以将查询结果一次性地加载到collections中。而不是通过cursor一条一条地处理。可以在select into,fetch into,returning into语句使用bulk collect。注意在使用bulk collect时,所有的into变量都必须是collections.举几个简单的例子:--在se            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                            精选
                                                        
                            2014-03-12 16:44:19
                            
                                1948阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            通过bulk collect减少loop处理的开销 采用bulk collect可以将查询结果一次性地加载到collections中。 而不是通过cursor一条一条地处理。 可以在select into,fetch into,returning into语句使用bulk collect。 注意在使 ...            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2021-07-29 16:55:00
                            
                                1691阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
            有同学在T.askmaclean.com上发帖关于bulk collect与open cursor的问题, 帖子的地址在这里。            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2012-08-01 19:18:08
                            
                                367阅读
                            
                                                                             
                 
                
                             
         
            
            
            
                  declare 
---定义一个ref游标
  type empcurtyp is ref cursor;
---定义一个table类型
  type idlist is table of emp.empno%type;
---定义一个table类型
  type namelist is table of emp.ename%type;
---定义一个table类型
  ty            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2014-11-16 16:17:22
                            
                                645阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            有同学在T.Askmaclean.com上提问关于bulk            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2012-06-28 21:00:15
                            
                                454阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            bulk collect是可以看做是一种批获取的方式,在我们的plsql的代码段登场了,解决我们的问题。            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2022-08-12 21:41:40
                            
                                520阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            FORALL与BULK COLLECT的使用方法:1.使用FORALL比FOR效率高,因为前者只切换一次上下文,而后者将是在循环次数一样多个上下文间切换。 2.使用BLUK COLLECT一次取出一个数据集合,比用游标条取数据效率高,尤其是在网络不大好的情况下。但BLUK COLLECT需要大量内存。 例子:Sql代码  create table tes            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-05-24 14:37:43
                            
                                201阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            通过bulk collect减少loop处理的开销
发表人:logzgh | 发表时间: 2006年五月19日, 10:56
采用bulk collect可以将查询结果一次性地加载到collections中。
而不是通过cursor一条一条地处理。
可以在select into,fetch into,returning into语句使用bulk collect。
注意在使用bulk collect            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2007-11-21 12:52:41
                            
                                10000+阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            declarecursor c1 is select * from t_depart;v_depart t_depart%rowtype ;type v_code_type is ta            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-05-25 15:47:44
                            
                                34阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            declare type forall_table is table of tb1%rowtype;test_table forall_table;cursor c1 is select *   fr            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2023-05-24 14:26:06
                            
                                84阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            create table t1 as select * from dba_oex idx_t1_object_id on t1(object_id);根据T2的字段去删除T表的            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2023-05-24 14:01:10
                            
                                76阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            create table
-- drop table tmp_20190706_220000-- truncate table tmp_20190706_220000
create table tmp_20190706_220000 ( id   integer, name varchar(100), memo varchar(200));
1234567891011plsql into
通常简单            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2019-07-10 01:14:00
                            
                                107阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            在一般的情况下,使用批量fetch的几率并不是很多,但是Oracle提供了这个功能我们最好能熟悉一下,说不定什么时候会用上它。
 
    
        
            
            declarecursor c1 is select * from t_depart;v_depart t_depart%rowtype ;type v_code            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                            精选
                                                        
                            2012-03-09 21:40:50
                            
                                1258阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            本文中介绍的几种写法分别是从代码的简易性,FORALL和bulk collect的使用,以及分批插入这三方面考虑            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-05-24 14:11:41
                            
                                78阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            Oracle数据库之FORALL与BULK COLLECT语句 我们再来看一下PL/SQL块的执行过程:当PL/SQL运行时引擎处理一块代码时,它使用PL/SQL引擎来执行过程化的代码,而将SQL语句发送给SQL引擎来执行;SQL引擎执行完毕后,将结果再返回给PL/SQL引擎。这种在PL/SQL引擎 ...            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2021-07-28 20:39:00
                            
                                317阅读
                            
                                                                                    
                                2评论
                            
                                                 
                 
                
                             
         
            
            
            
             http://www.jzxue.com/shujuku/oracle/201109/21-8976.html通常我们获取游标数据是用 fetch some_cursor into var1, var2 的形式,当游标中的记录数不多时不打紧。然而自 Oracle 8i 起,Oracle 为我们提供了 fetch bulk collect 来批量取游标中的数据,存中即是合理的。它能在读取            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2023-07-03 15:44:34
                            
                                256阅读