patternMinor
Retrieve Indices of Associative Array as Collection
Viewed 0 times
indicesarraycollectionretrieveassociative
Problem
In PL/SQL, suppose I have some associative array defined as follows:
I then, sparsely, populate the array as follows:
Is there some operator or function that can give me the indices of the array,
declare
type a_arr_t is table of PLS_INTEGER index by PLS_INTEGER;
a_arr a_arr_t;I then, sparsely, populate the array as follows:
begin
a_arr(1) := 2;
a_arr(10) := 4;
a_arr(100) := 6;
end;Is there some operator or function that can give me the indices of the array,
(1,10,100) as a collection of some sort, something like indices of in a forall statement?Solution
Is there some operator or function that can give me the indices of the array
No, you have to loop through the associative array:
No, you have to loop through the associative array:
declare
type a_arr_t is table of PLS_INTEGER index by PLS_INTEGER;
type keys_t is table of PLS_INTEGER;
a_arr a_arr_t;
keys_ keys_t := keys_t();
l_index integer;
begin
a_arr(1) := 2;
a_arr(10) := 4;
a_arr(100) := 6;
l_index := a_arr.first;
while (l_index is not null)
loop
keys_.extend();
keys_(keys_.count):=l_index;
dbms_output.put_line(keys_(keys_.count));
l_index := a_arr.next(l_index);
end loop;
end;
/
/*
1
10
100
*/
Context
StackExchange Database Administrators Q#22139, answer score: 7
Revisions (0)
No revisions yet.