Talk About Network

Google


Register and Login
Nick
Password
Register create new account Sign up is FREE and you can post replies, new topics, bookmark posts and more!
Recover lost password


Data Bases > Oracle Miscellaneous > Re: most idioma...
Latest [ Topics | Posts ] Archive Post A New Topic Post a Reply
<< Topic < Post Post 2 of 9 Topic 6880 of 7280
Post > Topic >>

Re: most idiomatic way to iterate over an associative array?

by Robert Klemme <shortcutter@[EMAIL PROTECTED] > May 7, 2008 at 01:07 AM

On May 7, 6:51 am, m...@[EMAIL PROTECTED]
 wrote:
> This is what I'm doing now... is there a better way?
> It would be great if there were some construct such
> as 'for i in x begin ... end;'
>
>     i := x.first;
>     loop
>         dbms_output.put_line(i);
>         exit when i = x.last;
>         i := x.next(i);
>     end loop;
>
> Many TIA!
> Mark

This will break for empty collections.  You can do

SQL> set serverout on
SQL> DECLARE  TYPE population_type IS TABLE OF NUMBER INDEX BY
VARCHAR2(64);
  2    continent_population population_type;
  3    which VARCHAR2(64);
  4  BEGIN
  5    dbms_output.put_line('-----------');
  6
  7    which := continent_population.FIRST;
  8    while which is not null loop
  9      dbms_output.put_line(which || ' -> ' ||
continent_population(which));
 10      which := continent_population.NEXT(which);
 11    end loop;
 12
 13    dbms_output.put_line('-----------');
 14
 15    continent_population('Australia') := 30000000;
 16    continent_population('Antarctica') := 1000; -- Creates new
entry
 17    continent_population('Antarctica') := 1001; -- Replaces
previous value
 18
 19    which := continent_population.FIRST;
 20    while which is not null loop
 21      dbms_output.put_line(which || ' -> ' ||
continent_population(which));
 22      which := continent_population.NEXT(which);
 23    end loop;
 24
 25    dbms_output.put_line('-----------');
 26  END;
 27  /
-----------
-----------
Antarctica -> 1001
Australia -> 30000000
-----------

PL/SQL procedure successfully completed.

SQL>

Cheers

robert

see
http://download.oracle.com/docs/cd/B19306_01/appdev.102/b14261/collections.htm#sthref1022
http://download.oracle.com/docs/cd/B19306_01/appdev.102/b14261/collections.htm#sthref1146
 




 9 Posts in Topic:
most idiomatic way to iterate over an associative array?
mh@[EMAIL PROTECTED]   2008-05-07 04:51:11 
Re: most idiomatic way to iterate over an associative array?
Robert Klemme <shortcu  2008-05-07 01:07:27 
Re: most idiomatic way to iterate over an associative array?
Mark D Powell <Mark.Po  2008-05-07 09:28:47 
Re: most idiomatic way to iterate over an associative array?
Urs Metzger <urs@[EMAI  2008-05-08 20:02:58 
Re: most idiomatic way to iterate over an associative array?
"stephen O'D" &  2008-05-07 13:37:18 
Re: most idiomatic way to iterate over an associative array?
Mark D Powell <Mark.Po  2008-05-07 17:19:04 
Re: most idiomatic way to iterate over an associative array?
Mark D Powell <Mark.Po  2008-05-08 11:01:37 
Re: most idiomatic way to iterate over an associative array?
"stephen O'D" &  2008-05-09 08:57:11 
Re: most idiomatic way to iterate over an associative array?
Mark D Powell <Mark.Po  2008-05-10 07:08:54 

Post A Reply:
  Go here to Signup

AddThis Feed Button


About - Advertising - Contact - Frequently Asked Questions - Privacy Policy - Terms of Use - Signup

Contact
tan12V112 Wed Dec 3 0:13:43 CST 2008.