Re: Strange cursor behavior?

From: Justin Cave <jocave_at_yahoo.com>
Date: 29 Dec 2002 02:22:14 -0800
Message-ID: <233b7a65.0212290222.1fac483c_at_posting.google.com>


Can you do the sanity check of "select count(*) from dual"?

"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 Sun Dec 29 2002 - 11:22:14 CET

Original text of this message