Re: oracle RowType issue

From: ddf <oratune_at_msn.com>
Date: Wed, 20 Jan 2010 11:53:01 -0800 (PST)
Message-ID: <55cfe94c-a997-4603-8b0d-2cf209ae708e_at_j19g2000yqk.googlegroups.com>



On Jan 20, 10:10 am, FB <franklinbr..._at_gmail.com> wrote:
> Hi All,
> Im new to Oracle.
> I have a Rowtype and i want to Loop through that Rowtype without
> mentioning the Column name.
>
> My code as below :
>
> declare
>   empRowType    Emp%ROWTYPE;
> begin
> SELECT  * INTO empRowType FROM Emp
>         WHERE   Emp_id  = 101    ;
>
>        for x in ( select column_name from user_tab_columns where
> table_name = 'Emp')
>        loop
>                    i:=i+1;
>                    y:= x.column_name;
>                    z:= 'empRowType.'|| x.column_name;
>                    dbms_output.put_line (z);
>        end loop;
> end
>
> Steps :
>
> 1) First Im declaring a RowType of Employee table.
> 2) Assigning value to RowType by making a select statement.
> 3) I want to get all the column name value printed so im selecting
> the
> column names of the table by using USER_TAB_COLUMNS table and running
> a for loop.
> 4) Im concatenating RowTypeName.Column name (ex:  z:= 'empRowType.'||
> x.column_name;)
> 5) Print the Value
>
> I get a O/P as String as :
>
> empRowType.Emp_ID
> empRowType.Emp_Name
> empRowType.Emp_Department
>
> but i want the O/P as
>
> "101"
> "John Peter"
> "Marketing Department"
>
> Pls someone help. This is a sample i have created to put in this
> website. I cannot use RowType column to meet the requirement.
>
> Thanks in advance,
>
> FB

What, exactly, is your requirement? It has been mentioned that you are creating a string, not a column reference for the declared type, which explains your current output. Using execute immediate may not work as that involves a context switch and once that happens the SQL session created to execute your dynamic statement has no 'knowledge' of empRowType, much less its contents.

Knowing your 'marching orders' will help us tremendously in assisting you.

David Fitzjarrell Received on Wed Jan 20 2010 - 13:53:01 CST

Original text of this message