Re: note 93924 added to function.oci-set-prefetch

From: Date: Wed, 07 Oct 2009 00:49:12 +0000
Subject: Re: note 93924 added to function.oci-set-prefetch
References: 1  Groups: php.notes 
Request: Send a blank email to php-notes+get-161421@lists.php.net to get a copy of this message
Chris; In the note you just added (below), the code is incomplete. Want to update it or re-add it? On Tue, Oct 6, 2009 at 20:57, <sixd@php.net> wrote: > With Oracle 11gR2, prefetching also works when fetching from REF > CURSORS and nested queries. > > To use a non default prefetch count, use oci_set_prefetch.  For > example, on the REF CURSOR statement handle: > >    $stid = oci_parse($c, "call myproc(:rc)"); >    $refcur = oci_new_cursor($c); >    oci_bind_by_name($stid, ':rc', $refcur, -1, OCI_B_CURSOR); >    oci_execute($stid); >    oci_set_prefetch($refcur, 200); >    oci_execute($refcur); >    oci_fetch_all($refcur, $res); >    var_dump($res); > > REF CURSOR prefetching can be used when PHP is linked with Oracle > 11gR2 libraries and connected to previous database versions of the > database. > > Nested cursor prefetching requires both the Oracle client libraries > linked with PHP and the database to be Oracle Database 11gR2 > > From PHP 5.3.2 (PHP OCI8 >= 1.4) the prefetch value may be set to 0. > Previously the lower bound was 1. > > If PHP OCI8 fetches from a REF CURSOR and then passes the REF CURSOR > back to a second PL/SQL procedure for further processing, set the REF > CURSOR prefetch count to 0 to avoid rows being "lost" from the result > set. > >    // get the REF CURSOR >    $stid = oci_parse($c, "call myproc_get_rc(:rc_out)"); >    $refcur = oci_new_cursor($c); >    oci_bind_by_name($stid, ':rc_out', $refcur, -1, OCI_B_CURSOR); >    oci_execute($stid); > >    // Fetch one row and display it >    oci_set_prefetch($refcur, 0);  // don't prefetch rows that aren't displayed >    oci_execute($refcur); >    $row = oci_fetch_array($refcur); >    var_dump($res); > >    // pass the REF CURSOR to myproc_use_rc() to do more data processing >    $stid = oci_parse($c, "call myproc_use_rc(:rc_in)"); >    oci_bind_by_name($s > ---- > Server IP: 69.147.83.197 > Probable Submitter: 148.87.1.172 > ---- > Manual Page -- > http://www.php.net/manual/en/function.oci-set-prefetch.php > Edit        -- https://master.php.net/note/edit/93924 > Del: integrated  -- > https://master.php.net/note/delete/93924/integrated > Del: useless     -- > https://master.php.net/note/delete/93924/useless > Del: bad code    -- > https://master.php.net/note/delete/93924/bad+code > Del: spam        -- > https://master.php.net/note/delete/93924/spam > Del: non-english -- > https://master.php.net/note/delete/93924/non-english > Del: in docs     -- > https://master.php.net/note/delete/93924/in+docs > Del: other reasons-- https://master.php.net/note/delete/93924 > Reject      -- https://master.php.net/note/reject/93924 > Search      -- https://master.php.net/manage/user-notes.php > > > -- > PHP Notes Mailing List (http://www.php.net/) > To unsubscribe, visit: http://www.php.net/unsub.php > > -- </Daniel P. Brown> daniel.brown@parasane.net || danbrown@php.net http://www.parasane.net/ || http://www.pilotpig.net/ Looking for hosting or dedicated servers? Ask me how we can fit your budget!

« previous php.notes (#161421) next »