而如果没有这句话“index by binary_integer”,那就得要显示对初始化,且每插入一个元素到numbers类型的table中时,都需要先extend.
示例:
没加“index by binary_integer”时:
declare
type my_number_arr is table of number;
n my_number_arr:= my_number_arr();
begin
n.extend;
n(1) := 2;
n.extend;
n(2) := 3;
for i in1 .. n.count loop
dbms_output.put_line(n(i));
end loop;
end;
输出:2,3
而如果加了“index by binary_integer”,代码如下写就可以达到上面的效果
declare
type my_number_arr is table of number index by binary_integer;
n my_number_arr;
begin
n(1) := 2;
n(2) := 3;
for i in1 .. n.count loop
dbms_output.put_line(n(i));
end loop;
end;
- 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;
- end;