Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
Home -> Community -> Usenet -> c.d.o.misc -> Re: Fields in variable cursor
On Wed, 7 Jul 2004 16:30:33 +0500, "Oracle Newbie"
<f93c0532_at_yahoo.com> wrote:
>A stored procedure has returned a variable cursor (say rsg ). Now in SQL
>Plus how can I access the fields or columns of the record ?
>Is'nt there something like rsg(1) etc. and even if I know the field names
>rsg.ename doesnt work.
>
>thx.
>
>SQL> DECLARE
> 2 TYPE rfc IS REF CURSOR;
> 3 rsg rfc;
> 4 ename varchar(15);
> 5
> 6
> 7 BEGIN
> 8 emp_grade.GetEGrade(18,rsg); /* rsg is an output cursor parameter
>*/
> 9
> 10 dbms_output.put_line(rsg.ename);
> 11 END;
> 12 /
> dbms_output.put_line(rsg.ename);
> *
>ERROR at line 10:
>ORA-06550: line 10, column 29:
>PLS-00487: Invalid reference to variable 'RSG'
>ORA-06550: line 10, column 4:
>PL/SQL: Statement ignored
>
You have defined a *weak* ref cursor. Those ref cursors are typeless. So that is the reason why you can't refer to rsg.ename Also you can't refer to rsg(1). In which manual did you see that was possible. If it was possible, it would have been in the pl/sql reference manual.
-- Sybrand Bakker, Senior Oracle DBAReceived on Wed Jul 07 2004 - 12:24:38 CDT