Re: Quick (hopefully) pl/sql cursor question

From: Lothar Flatz <l.flatz_at_bluewin.ch>
Date: Fri, 27 Sep 2019 20:57:28 +0200
Message-ID: <5342df9f-1ce3-beb9-4a77-e2d7c3b9f53c_at_bluewin.ch>



Would c2 still be initialized at the start of the ‘For y’ loop??  I think so but want to confirm.

C2 will reinitialize for every  iteration of the c1 loop. "Still" does not apply here.

Am 27.09.2019 um 20:52 schrieb Sweetser, Joe:
>
> Thanks!
>
> To be clear, procedure3a has 2 cursor ‘definitions’ in the declaration
> section.  My tabs didn’t work for spacing last time.  I apologize if
> that happens again.
>
> Procedure 3a is
>
> Cursor c1 is select ….
>
> Cursor c2 is select….
>
> Begin
>
> For x in c1 loop
>
>    Declare
>
>          -set some constants
>
>     Begin
>
>    For y in c2 loop
>
>    Do some stuff
>
>    End loop;
>    End loop;
>
> End;
>
> Would c2 still be initialized at the start of the ‘For y’ loop??  I
> think so but want to confirm.
>
> Thanks again,
>
> -joe
>
> *From:*Jacek Gębal <jgebal_at_gmail.com>
> *Sent:* Friday, September 27, 2019 12:32 PM
> *To:* Sweetser, Joe <JSweetser_at_icat.com>
> *Cc:* oracle-l <oracle-l_at_freelists.org>
> *Subject:* Re: Quick (hopefully) pl/sql cursor question
>
> If the cursor is implicit in procedure3a like:
>
> FOR x IN (SELECT * FROM DUAL) LOOP
>
>   --do some stuff here
>
>   NULL;
>
> END LOOP;
>
> The cursor is initialized when the PLSQL engine goes into FOR ...LOOP
> statement.
>
> Cheers,
>
> Jacek
>
> On Fri, 27 Sep 2019 at 18:27, Sweetser, Joe <JSweetser_at_icat.com
> <mailto:JSweetser_at_icat.com>> wrote:
>
> Greetings,
>
> Does anyone know exactly when an explicit cursor is initialized in
> pl/sql?  I understand I may need to supply more info, but I am no
> pl/sql wizard and don't know exactly what info is needed.
>
> I have a package with multiple procedures.  One those procedures
> contains additional procedures.  And one of those additional
> procedures has some cursors.  Sorta like this:
>
> Package
> - procedure1
> - procedure2
> - procedure3
> - procedure3a
> - cursor 1
> - cursor 2
>
> Would the cursors be initialized when procedure3 is called or when
> procedure3a is called?  I would guess procedure3a but the
> developer is seeing some weirdness where it looks like it's when
> procedure3 is called.
>
> There is no explicit "open cursor" call.  It is used in a for
> loop, so I think oracle opens it automagically.  But, again, I am
> trying to determine the initialization.  When is the cursor loaded
> with data?
>
> Any/all ideas/suggestions welcome.
>
> Thanks,
> -joe
>
> This e-mail transmission and any attachments that accompany it may
> contain information that is privileged, confidential or otherwise
> exempt from disclosure under applicable law and is intended solely
> for the use of the individual's to whom it was intended to be
> addressed. If you have received this e-mail by mistake, or you are
> not the intended recipient, any disclosure, dissemination,
> distribution, copying or other use or retention of this
> communication or its substance is prohibited. If you have received
> this communication in error, please immediately reply to the
> author via e-mail that you received this message by mistake and
> also permanently delete the original and all copies of this e-mail
> and any attachments from your computer. Please note that coverage
> cannot be bound or altered by sending an email. You must receive
> written confirmation from a representative of our firm to put
> coverage in force or make changes to an existing policy.
> --
> http://www.freelists.org/webpage/oracle-l
> <https://nam05.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.freelists.org%2Fwebpage%2Foracle-l&data=02%7C01%7CJSweetser%40icat.com%7Ca9daa451d7ba471ed7c908d74378fa5a%7C5d3bf30e9adb4c17b2425c17523e6e5e%7C0%7C0%7C637052059196794770&sdata=X7GUSBTbN3s%2FwgxeVBs54k2KErca0BCO9G3KweMZeL4%3D&reserved=0>
>
> This e-mail transmission and any attachments that accompany it may
> contain information that is privileged, confidential or otherwise
> exempt from disclosure under applicable law and is intended solely for
> the use of the individual's to whom it was intended to be addressed.
> If you have received this e-mail by mistake, or you are not the
> intended recipient, any disclosure, dissemination, distribution,
> copying or other use or retention of this communication or its
> substance is prohibited. If you have received this communication in
> error, please immediately reply to the author via e-mail that you
> received this message by mistake and also permanently delete the
> original and all copies of this e-mail and any attachments from your
> computer. Please note that coverage cannot be bound or altered by
> sending an email. You must receive written confirmation from a
> representative of our firm to put coverage in force or make changes to
> an existing policy.

-- 





--
http://www.freelists.org/webpage/oracle-l
Received on Fri Sep 27 2019 - 20:57:28 CEST

Original text of this message