PHP マニュアル
前のページ |  | 次のページ

# oci_new_cursor

(PHP 5)

oci_new_cursor -- 新規カーソル (ステートメントハンドル) を割り当て返す

## 説明

resource oci_new_cursor ( resource connection )

oci_new_cursor() は指定された接続に新規カーソルを割り当てます。

例 1. Oracle ストアドプロシージャにおける REF CURSOR の使用例
`<?php // ストアドプロシージャ info.output が :data の REF CURSOR を返すと仮定する $conn = oci_connect("scott", "tiger"); $curs = oci_new_cursor($conn); $stmt = oci_parse($conn, "begin info.output(:data); end;"); oci_bind_by_name($stmt, "data", $curs, -1, OCI_B_CURSOR); oci_execute($stmt); oci_execute($curs); while ($data = oci_fetch_row($curs)) { var_dump($data); } oci_free_statement($stmt); oci_free_statement($curs); oci_close($conn); ?>`

例 2. Oracle の select 文における REF CURSOR の使用例
`<?php echo "<html><body>"; $conn = oci_connect("scott", "tiger"); $count_cursor = "CURSOR(select count(empno) num_emps from emp " . "where emp.deptno = dept.deptno) as EMPCNT from dept"; $stmt = oci_parse($conn, "select deptno,dname,$count_cursor"); oci_execute($stmt); echo "<table border=\"1\">"; echo "<tr>"; echo "<th>DEPT NAME</th>"; echo "<th>DEPT #</th>"; echo "<th># EMPLOYEES</th>"; echo "</tr>"; while ($data = oci_fetch_assoc($stmt)) { echo "<tr>"; $dname = $data["DNAME"]; $deptno = $data["DEPTNO"]; echo "<td>$dname</td>"; echo "<td>$deptno</td>"; oci_execute($data["EMPCNT"]); while ($subdata = oci_fetch_assoc($data["EMPCNT"])) { $num_emps = $subdata["NUM_EMPS"]; echo "<td>$num_emps</td>"; } echo "</tr>"; } echo "</table>"; echo "</body></html>"; oci_free_statement($stmt); oci_close($conn); ?>`

エラーの場合、oci_new_cursor() は `FALSE` を返します。

> 注意: PHP バージョン 5.0.0 以前では、代わりに ocinewcursor() を使用しなければなりません。 まだこの名前を使用することができ、下位互換性のため oci_new_cursor() への別名として残されていますが、 推奨されません。

前のページ | ホーム | 次のページ
oci_new_connect | 上に戻る | oci_new_descriptor