Oracle中使用数组,就像JAVA使用对象List<Object>一样,但是稍微有点不同。
对于每个Object使用之前,需要做声明。
?
具体实现如下:
declare --%ROWTYPE使用可以直接使用类型,非常方便,但是个性化定义就要使用Record如下: type tbl_type is table of my_tbl%rowtype; v_tbl_list tbl_type; --声明需要集合类型及变量,参照字段的 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 C_contacts_cur is select sr_contact_id,contact_phone,remark from sr_contacts where rownum <= 100000; begin open C_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) 取出字段值来执行你的业务逻辑 end loop; exit when C_contacts_cur%notfound; --exit 不能紧接 fetch 了,不然会漏记录 end loop; close all_contacts_cur; end; --自定义record TYPE my_record IS RECORD ( name varchar2(25), mobile varchar2(20), email varchar2(50) ); type my_type is table of my_record; --定义一个数组类型,相当于java中的List my_data_set my_type ; --声明我的个性化定义的数据类型。
?