Russian Ukraine English
Catalog RSS


(PHP 3>= 3.0.8, PHP 4 )

OCINewCursor -- Return a new cursor (Statement-Handle) - use to bind ref-cursors.


int OCINewCursor (int conn)

OCINewCursor() allocates a new statement handle on the specified connection.

Example 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); }   OCIFreeCursor($stmt); OCIFreeStatement($curs); OCILogoff($conn); ?>       

Example 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); ?>