是否可以为PL / SQL阵列上的每个循环运行一个?
答案 0 :(得分:11)
for i in my_array.first ..my_array.last loop
--do_something with my_array(i);
end loop;
答案 1 :(得分:1)
无法使用带有FOR循环的非数字索引迭代关联数组。下面的解决方案很好用。
-- for-each key in (associative-array) loop ...
declare
type items_type is table of varchar2(32) index by varchar2(32);
items items_type;
begin
items('10') := 'item 10';
items('20') := 'item 20';
items('30') := 'item 30';
dbms_output.put_line('items=' || items.count);
<<for_each>> declare key varchar2(32); begin loop
key := case when key is null then items.first else items.next(key) end;
exit when key is null;
dbms_output.put_line('item(' || key || ')=' || items(key));
--do something with an item
end loop; end for_each;
end;