Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
Home -> Community -> Usenet -> c.d.o.tools -> Re: PLS-00302 error
My guess is that the problem isn't with the declaration of the cnrow variable that you are using with the fetch, but with the table's old and new. Do they both have a column cnrow?
-- Robert Fazio, Oracle DBA rfazio_at_home.com remove nospam from reply address http://24.8.218.197/ "Gennady" <gennadyb_at_halcosoftware.com> wrote in message news:3911cb41$0$6553_at_fountain.mindlink.net...Received on Thu May 04 2000 - 00:00:00 CDT
> Hello,
> In my PL/SQL code I have a variable of ROWTYPE and I try to access
> the variable component using another variable, but I got an errorr:
> "PLS-00302: component 'CNROW' must be declared".
> The code is:
> declare
> cursor c1 is select * from old;
> old_row old%ROWTYPE;
> cursor c2 is select * from new;
> new_row new%ROWTYPE;
> cursor c3 is select column_name from user_tab_columns where table_name =
> 'OLD';
> cnrow user_tab_columns.column_name%TYPE;
> 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 cnrow;
> If (old_row.cnrow = new_row.cnrow) 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;
>
> How can I fix the problem??
> Thanks,
> Gennady
> >