These are cook book recipes that show, for each of the three collection types,
how to iterate over their elements.
Nested tables
declare
type table_varchar is table of varchar2(10);
var_table_varchar table_varchar;
begin
var_table_varchar := table_varchar('one', 'two', 'three', 'four');
for elem in 1 .. var_table_varchar.count loop
dbms_output.put_line(elem || ': ' || var_table_varchar(elem));
end loop;
end;
/
1: one
2: two
3: three
4: four
Index by tables
declare
type assoc_varchar is table of varchar2(10) index by pls_integer;
var_assoc_varchar assoc_varchar;
elem varchar2(10);
begin
var_assoc_varchar(40) := 'forty';
var_assoc_varchar(10) := 'ten';
var_assoc_varchar(30) := 'thirty';
var_assoc_varchar(20) := 'twenty';
elem := var_assoc_varchar.first;
while elem is not null loop
dbms_output.put_line(elem || ': ' || var_assoc_varchar(elem));
elem := var_assoc_varchar.next(elem);
end loop;
end;
/
10: ten
20: twenty
30: thirty
40: forty
varrays
declare
type varray_varchar is varying array(20) of varchar2(10);
var_varray_varchar varray_varchar;
begin
var_varray_varchar := varray_varchar('un', 'deux', 'trois', 'quattre');
for elem in 1 .. var_varray_varchar.count loop
dbms_output.put_line(elem || ': ' || var_varray_varchar(elem));
end loop;
end;
/
1: un
2: deux
3: trois
4: quattre
|