Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Usenet -> c.d.o.tools -> Reference to a component of composite variable

Reference to a component of composite variable

From: Gennady <gbesfamilny_at_home.com>
Date: 2000/05/08
Message-ID: <1CpR4.210926$Dv1.2692524@news1.rdc1.bc.home.com>#1/1

Hello,
In my PL/SQL code I have a composite variable of ROWTYPE and I try to access the variable component using another variable, but I got an error: "PLS-00302: component 'field_name' must be declared". The code is:
declare
cursor c1 is select * from old;
old_row c1%ROWTYPE;
cursor c2 is select * from new;
new_row c2%ROWTYPE;
cursor c3 is select column_name from user_tab_columns where table_name = 'OLD';
field_name c3%ROWTYPE;
begin
dbms_output.enable;

open c1;
open c2;
open c3;

loop
fetch c1 into old_row;
fetch c2 into new_row;
exit when (c1%notfound or c2%notfound);
end loop;
loop
fetch c3 into field_name;
If (old_row.field_name = new_row.field_name) then --error in this line! dbms_output.put_line('SAME VALUE');
else
dbms_output.put_line('DIFFERENT VALUE'); end if;
exit when c3%notfound;
end loop;
end;
The 'field_name' is A VARIABLE and I put in this variable actual OLD and NEW tables (both have SAME structure) column names which I get from SYSTEM VIEW user_tab_columns, using cursor c3 (see the code above). So the actual question is: how to make a reference (in run time) to the component
(element) of a composite variable , for example old_row, when a component name (field name) is a variable?

Thanks,
Gennady Received on Mon May 08 2000 - 00:00:00 CDT

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US