OCINewCursor

(PHP 3>= 3.0.8, PHP 4 )

OCINewCursor --  Új kurzor (parancs eredmény kezelő) megnyitása

Leírás

int OCINewCursor ( int conn)

Az OCINewCursor() egy új eredménytábla kezelő kurzort nyit meg a megadott kapcsolaton.

Példa 1. REF CURSOR használata egy tárolt eljárásból

<?php   
// feltesszük, hogy az info.kimenet tárolt eljárásod egy "ref cursor"-t
// ad vissza az :adat-ban

$conn = OCILogon("scott","tiger");
$kurzor = OCINewCursor($conn);
$stmt = OCIParse($conn,"begin info.kimenet(:adat); end;");

ocibindbyname($stmt,"adat", &$kurzor, -1, OCI_B_CURSOR);
ociexecute($stmt);
ociexecute($kurzor);

while (OCIFetchInto($kurzor, &$adat)) {
    var_dump($adat);
}
 
OCIFreeStatement($stmt);
OCIFreeCursor($kurzor);
OCILogoff($conn);
?>

Példa 2. REF CURSOR használata select parancsban

<?php   
print "<HTML><BODY>";
$conn = OCILogon("scott","tiger");
$szamlalo_kurzor =
    "CURSOR(select count(dolgozoid) dolgozo_szam from dolgozok " .
    "where dolgozok.reszleg = reszleg.reszlegid) as DSZAM from reszleg";
$stmt = OCIParse($conn,"select reszlegid,rnev,$szamlalo_kurzor");

ociexecute($stmt);
print "<TABLE BORDER=\"1\">";
print "<TR>";
print "<TH>RÉSZLEG NÉV</TH>";
print "<TH>RÉSZLEG SZÁM</TH>";
print "<TH>DOLGOZÓK SZÁMA</TH>";
print "</TR>";

while (OCIFetchInto($stmt, &$adat, OCI_ASSOC)) {
    print "<TR>";
    $rnev  = $adat["RNEV"];
    $rszam = $adat["RESZLEGID"];
    print "<TD>$rnev</TD>";
    print "<TD>$rszam</TD>";
    ociexecute($adat["DSZAM"]);
    while (OCIFetchInto($adat["DSZAM"], &$reszadat, OCI_ASSOC)) {
        $dszam = $reszadat["DOLGOZO_SZAM"];
        print  "<TD>$dszam</TD>";
    }
    print "</TR>";
}
print "</TABLE>";
print "</BODY></HTML>";
OCIFreeStatement($stmt);
OCILogoff($conn);
?>