WEB开发网
开发学院数据库Oracle Oracle 中使用 fetch bulk collect into 批量效率... 阅读

Oracle 中使用 fetch bulk collect into 批量效率的读取游标数据

 2009-05-12 13:13:51 来源:WEB开发网   
核心提示: select sr_contact_id,contact_phone,remark from sr_contacts where rownum <= 100000; begin open all_contacts_cur; loop fetch all_contacts_c

     select sr_contact_id,contact_phone,remark from sr_contacts where rownum <= 100000;      

begin    
         
    open all_contacts_cur;     
    loop     
        fetch all_contacts_cur bulk collect into v_id,v_phone,v_remark limit 256;     
        for i in 1..v_id.count loop --遍历集合     
            --用 v_id(i)/v_phone(i)/v_remark(i) 取出字段值来执行你的业务逻辑     
            null; --这里只放置一个空操作,只为测试循环取数的效率    
        end loop;     
        exit when all_contacts_cur%notfound; --exit 不能紧接 fetch 了,不然会漏记录     
    end loop;     
    close all_contacts_cur;     
end;   
declare  

--声明需要集合类型及变量,参照字段的 type 来声明类型   

  type id_type is table of sr_contacts.sr_contact_id%type;  
  v_id id_type;  
    
  type phone_type is table of sr_contacts.contact_phone%type;  
  v_phone phone_type;  
    
  type remark_type is table of sr_contacts.remark%type;  
  v_remark remark_type; 

cursor all_contacts_cur is --用 rownum 来限定取出的记录数来测试   

上一页  1 2 3 4 5 6 7  下一页

Tags:Oracle 使用 fetch

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接