oci_field_size

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

oci_field_sizeフィールドサイズを返す

説明

oci_field_size(resource $statement, mixed $field): int

フィールド field のサイズを返します。

パラメータ

statement

有効な OCI ステートメント ID。

field

フィールドのインデックス (1 から始まるもの) あるいは名前。

返り値

フィールド field のサイズを表すバイト数、あるいは エラー時に false を返します。

例1 oci_field_size() の例

<?php

// 以下のテーブルを用意します
//   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($stidOCI_DESCRIBE_ONLY); // 行をフェッチしない場合は OCI_DESCRIBE_ONLY を使います

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";

// 出力は
//    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);

?>

注意

注意:

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

参考

add a note 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