Oracle 自定义对象集合遍历
功能要求:Oracle 定义对象集合,将查询结果集批量插入对象集合,循环遍历自定义对象集合属性值。
-- 定义自定义对象Object create or replace type HOUSE is object{ -- 定义biz_id 属性 biz_id varchar2(50), -- 定义project_id 属性 project_id varchar2(50), -- 定义project_name 属性 project_name varchar2(128) } -- 自定义存储过程 create or replace produce pro_foreach is -- 自定义 Table, 装载HOUSE 对象 type MyHouseList is table of HOUSE; -- 声明对象集合 v_records MyHouseList; begin -- 定义游标,执行查询和遍历 for cur in (select p.project_id, p.project_name from BASE_PROJECT p group by p.project_name, p.project_id having(p.project_id) > 2 ) Loop -- 查询数据插入集合对象v_records select HOUSE(i.biz_id, i.project_id, i.project_name) bulk collect into v_records from BASE_BUILDING i where i.project_id = cur.project_id; -- 遍历 集合对象v_records for i in v_records.FIRST..v_records.LAST Loop DBMS_OUTPUT.PUT_LINE(v_records(i).biz_id) end Loop; end Loop; end;
下一篇:
mysql8.0 为什么取消了查询缓存