以下並非顯而易見
如果您需要從 PL/SQL 程序返回的 REF CURSOR 中的欄位數,您需要在繫結並執行後,使用 OCINumColumns() 處理由 OCINewCursor 返回的游標控制代碼,而不是語句控制代碼。OCIColumnName() 等函數也適用相同的規則。
(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)
oci_num_fields — 傳回敘述句中的結果欄位數
statement
有效的 OCI 敘述句識別碼。
以 int 型態傳回欄位數。
範例 #1 oci_num_fields() 範例
<?php
// 使用以下指令建立表格:
// CREATE TABLE mytab (id NUMBER, quantity NUMBER);
$conn = oci_connect("hr", "hrpwd", "localhost/XE");
if (!$conn) {
$m = oci_error();
trigger_error(htmlentities($m['message']), E_USER_ERROR);
}
$stid = oci_parse($conn, "SELECT * FROM mytab");
oci_execute($stid, OCI_DESCRIBE_ONLY); // 如果不提取資料列,請使用 OCI_DESCRIBE_ONLY
$ncols = oci_num_fields($stid);
for ($i = 1; $i <= $ncols; $i++) {
echo oci_field_name($stid, $i) . " " . oci_field_type($stid, $i) . "<br>\n";
}
// 輸出:
// ID NUMBER
// QUANTITY NUMBER
oci_free_statement($stid);
oci_close($conn);
?>
以下並非顯而易見
如果您需要從 PL/SQL 程序返回的 REF CURSOR 中的欄位數,您需要在繫結並執行後,使用 OCINumColumns() 處理由 OCINewCursor 返回的游標控制代碼,而不是語句控制代碼。OCIColumnName() 等函數也適用相同的規則。