type 【数组名称】 is table of 【数组成员的类型】 index by 【数组下标的类型】;
-----------------------------------------------------------------------------------------------------------
例1:type Varchar_Array is table of varchar2(3) index by pls_integer;
解释:定义一个
名称为:Varchar_Array
成员类型为:最大长度是3的的varchar2
数组下标为:从1开始的自增的integer
的类似数组的东西
------------------------------------------------------------------------------------------------------------------
例2:type type_array_num is table of number(5) index by varchar2(32);
解释:定义一个
名称为:type_array_num
成员类型为:最大长度是5的的number
数组下标为:最大长度为32的varchar2(可以随便写:例如 type_array_num('a_b_c') )
的类似数组的东西
取数组长度type_array_num.count
CREATE OR REPLACE procedure pro_parttable_auto
as
v_table_name varchar2(100);
TYPE type_array_str IS TABLE OF VARCHAR2(32) INDEX BY VARCHAR(32);
v_array_table type_array_str;
begin
v_array_table('STATIC_AGG_HOUR') := 'PART_AGGHOUR_';
v_array_table('STATIC_AGG_PROVINCE_DAY') := 'PART_PROV_';
v_table_name := v_array_table.FIRST;
loop
exit when v_table_name is null;
dbms_output.put_line(v_array_table(v_table_name));
dbms_output.put_line(v_table_name);
v_table_name := v_array_table.next(v_table_name);
end loop;
.FIRST和.NEXT得到的都是下标。