PHP 8.3.0 RC 6 available for testing

oci_field_size

(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)

oci_field_size返回字段大小

说明

oci_field_size(resource $statement, string|int $column): int|false

返回 column 的大小。

参数

statement

有效的 OCI 语句标识符。

column

可以是字段的索引(从1开始),也可以是名称。

返回值

以字节为单位返回 column 的大小, 或者在失败时返回 false

示例

示例 #1 oci_field_size() 示例

<?php

// Create the table with:
// CREATE TABLE mytab (number_col NUMBER, varchar2_col varchar2(1),
// clob_col CLOB, date_col DATE);

$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); // Use OCI_DESCRIBE_ONLY if not fetching rows

echo "<table border=\"1\">\n";
echo
"<tr>";
echo
"<th>Name</th>";
echo
"<th>Type</th>";
echo
"<th>Length</th>";
echo
"</tr>\n";

$ncols = oci_num_fields($stid);

for (
$i = 1; $i <= $ncols; $i++) {
$column_name = oci_field_name($stid, $i);
$column_type = oci_field_type($stid, $i);
$column_size = oci_field_size($stid, $i);

echo
"<tr>";
echo
"<td>$column_name</td>";
echo
"<td>$column_type</td>";
echo
"<td>$column_size</td>";
echo
"</tr>\n";
}

echo
"</table>\n";

// Outputs:
// Name Type Length
// NUMBER_COL NUMBER 22
// VARCHAR2_COL VARCHAR2 1
// CLOB_COL CLOB 4000
// DATE_COL DATE 7

oci_free_statement($stid);
oci_close($conn);

?>

参见

add a note

User Contributed Notes 1 note

up
0
rudi at darx dot com
23 years ago
Just a note regarding the size of Oracle NUMBERS will always return 22 as their "size".

This seems to be an Oracle feature. The rest of the documentation is in bug5156.
To Top