【Oracle】集合(联合数组(索引表),嵌套表,变长数组,记录类型的嵌套表)的初始化与赋值,以及它们的区别
--其中嵌套表与变长数组在赋值之前必须初始化,可以使用与集合类型同名的函数来进行初始化,联合数组无需初始化
--1.联合数组:
DECLARE TYPE object_rec IS RECORD( object_id all_objects_loc.object_id%TYPE, object_name all_objects_loc.object_name%TYPE, object_type all_objects_loc.object_type%TYPE); TYPE object_tab_type IS TABLE OF object_rec; object_tab object_tab_type; TYPE obj_cur_type IS REF CURSOR; --声明游标变量类型 obj_cur obj_cur_type;BEGIN OPEN obj_cur FOR SELECT a.object_id, a.object_name, a.object_type FROM all_objects_loc a WHERE rownum <= 10; FETCH obj_cur BULK COLLECT INTO object_tab; CLOSE obj_cur; FOR i IN 1 .. object_tab.count LOOP dbms_output.put_line('object_tab(' || i || '):' || object_tab(i) .object_id || ',' || object_tab(i).object_name || ',' || object_tab(i) .object_type); END LOOP;END;/