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_cu

     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; 

使用 fetch into 逐行获取游标数据

declare 

--声明变量,参照字段的 type 来声明类型   

  v_id sr_contacts.sr_contact_id%type;  
  v_phone sr_contacts.contact_phone%type;  
  v_remark sr_contacts.remark%type;   

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

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

begin 
      
    open all_contacts_cur;  
    loop  
        fetch all_contacts_cur into v_id,v_phone,v_remark;  
        exit when all_contacts_cur%notfound;      
        --用 v_id/v_phone/v_remark 取出字段值来执行你的业务逻辑  
        null; --这里只放置一个空操作,只为测试循环取数的效率  
    end loop;  
    close all_contacts_cur;  
end; 
declare

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

Tags:Oracle 使用 fetch

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