PHP 忒聊 綴豖 ヶ輛 OCINewCursor (PHP 3 = 3.0.8, PHP 4) Description OCINewCursor() allocates a new statement handle on the specified connection. 瞰赽 1. Using a REF CURSOR from a stored procedure ?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. Using a REF CURSOR in a select statement ?php print "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); print "TABLE BORDER=\"1\" "; print" TR "; print "TH DEPT NAME /TH "; print" TH DEPT # /TH "; print "TH # EMPLOYEES /TH "; print" /TR "; while (OCIFetchInto($stmt, $data,OCI_ASSOC)) {print "TR "; $dname = $data["DNAME"]; $deptno = $data["DEPTNO"]; print" TD $dname /TD "; print "TD $deptno /TD "; ociexecute($data["EMPCNT"]); while (OCIFetchInto($data["EMPCNT"], $subdata,OCI_ASSOC)) {$num_emps = $subdata["NUM_EMPS"]; print" TD $num_emps /TD ";} print "/TR ";} print" /TABLE "; print "/BODY /HTML "; OCIFreeStatement($stmt); OCILogoff($conn);? 綴豖 れ萸 ヶ輛 OCINewCollection 奻珨撰 OCINewDescriptor