今天一朋友发给我一个存储过程,里面有我一些不懂的东西,现记录如下:
TYPE IS TABLE OF VARCHAR2 INDEX BY VARCHAR 有这么一段不明白什么意思,自己做了一个测试:
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;
/
set serveroutput on
exec pro_parttable_auto
PART_AGGHOUR_
STATIC_AGG_HOUR
PART_PROV_
STATIC_AGG_PROVINCE_DAY
PL/SQL procedure successfully completed.