 |
ocinewcursor (PHP 3 >= 3.0.8, PHP 4, PHP 5) ocinewcursor --
·u>>O`O>>,"oD^Au"A'O^I±ê('O"i 3/4 "a 3/4 "a±ú)
~Aè^E"oresource ocinewcursor ( resource conn )
ocinewcursor() ^O'U`IOP¨u"A'Anot 1/2 'O'E"I·"OA"a`O>>,"oD^Au"A'O"i 3/4 "a 3/4 "a±ú!lb
例子 1. ''O`O>>,"o Oracle u"A'c'ae^1'y^3`I"OD^E^1'O~A`O>>,"o REF CURSOR
<?php // suppose your stored procedure info.output returns a ref cursor in :data
$conn = OCILogon("scott", "tiger"); $curs = OCINewCursor($conn); $stmt = OCIParse($conn, "begin info.output(:data); end;");
ocibindbyname($stmt, "data", &$curs, -1, OCI_B_CURSOR); ociexecute($stmt); ociexecute($curs);
while (OCIFetchInto($curs, &$data)) { var_dump($data); } OCIFreeStatement($stmt); OCIFreeCursor($curs); OCILogoff($conn); ?>
|
|
例子 2. ^O'U Oracle u"A select 'O"i 3/4 "a"OD^E^1'O~A REF CURSOR
<?php echo "<html><body>"; $conn = OCILogon("scott", "tiger"); $count_cursor = "CURSOR(select count(empno) num_emps from emp " . "where emp.deptno = dept.deptno) as EMPCNT from dept"; $stmt = OCIParse($conn, "select deptno,dname,$count_cursor");
ociexecute($stmt); echo "<table border=\"1\">"; echo "<tr>"; echo "<th>DEPT NAME</th>"; echo "<th>DEPT #</th>"; echo "<th># EMPLOYEES</th>"; echo "</tr>";
while (OCIFetchInto($stmt, &$data, OCI_ASSOC)) { echo "<tr>"; $dname = $data["DNAME"]; $deptno = $data["DEPTNO"]; echo "<td>$dname</td>"; echo "<td>$deptno</td>"; ociexecute($data["EMPCNT"]); while (OCIFetchInto($data["EMPCNT"], &$subdata, OCI_ASSOC)) { $num_emps = $subdata["NUM_EMPS"]; echo "<td>$num_emps</td>"; } echo "</tr>"; } echo "</table>"; echo "</body></html>"; OCIFreeStatement($stmt); OCILogoff($conn); ?>
|
|
|  |