Re: Looping through column values in a record without specifying column names?

From: William Robertson <williamr2019_at_googlemail.com>
Date: Wed, 5 Mar 2008 15:42:14 -0800 (PST)
Message-ID: <495261dd-c01f-4c81-b761-a43a8e43481a@n58g2000hsf.googlegroups.com>


On Mar 4, 3:38 pm, dana..._at_yahoo.com wrote:
> In PL/SQL, is there a way to loop through column values in a record
> without specifying column names in advance? e.g. like using an index
> number in an array?
>
> The code below will output a value for the column specified; but I've
> not found a way to create an inner loop and iterate through the record
> itself.
>
> DECLARE
>
> cursor cur is
> select * from my_table;
>
> BEGIN
>
> for rec in cur
> loop
> dbms_output.put_line(rec.my_column);
> end loop;
>
> END;
>
> Tried inserting an inner loop something like the following, and it
> failed:
>
> for x in rec
> loop
> dbms_output.put_line(x)
> end loop;
>
> ... and it failed:
>
> ERROR at line 7:
> ORA-06550: line 7, column 12:
> PLS-00456: item 'REC' is not a cursor
> ORA-06550: line 7, column 3:
> PL/SQL: Statement ignored
>
> So I can't use a RECORD in a FOR IN loop. How can I accomplish what I
> want to do some other way?
>
> Thanks.
>
> Dana

No, you cannot iterate through attributes of a record or object. Received on Wed Mar 05 2008 - 17:42:14 CST

Original text of this message