Re: Strange cursor behavior?

From: Brian E Dick <bdick_at_cox.net>
Date: Tue, 24 Dec 2002 01:59:46 GMT
Message-ID: <mcPN9.49576$pe.1885139_at_news2.east.cox.net>


Check for "not found" after the fetch.

"Vasileios Lourdas" <lourdas_at_otenet.gr> wrote in message news:au7slq$9id$1_at_nic.grnet.gr...
> Hello,
>
> When executing this PL/SQL code snippet in Oracle 8.1.6 and Oracle 9.0.1:
> ***
> declare
> c pkg.c_type;
> c_rec dual%rowtype;
>
> begin
> open c for 'select dummy from dual';
> loop
> exit when c%notfound;
> fetch c into c_rec;
> dbms_output.put_line('c is ' || c_rec.dummy);
> end loop;
> close c;
> end;
> ***
> i get the following results:
> ***
> SQL> /
> c is X
> c is X
>
> PL/SQL procedure successfully completed
>
> SQL>
> ***
> c_type is a type of a ref cursor declared in a package spec pkg. However,
> since the DUAL table has only one row, why the loop executes twice before
 it
> ends?
>
> I'm sorry if i miss something obvious, but this came across today and i've
> been thinking about it...
>
> Thanks,
> Vasilis
>
>
Received on Tue Dec 24 2002 - 02:59:46 CET

Original text of this message