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.
(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)
oci_field_size — Devuelve el tamaño de un campo Oracle
Devuelve el tamaño del campo column
Oracle.
statement
Un identificador de consulta OCI válido.
column
Puede ser el índice del campo (la indexación comienza en 1) o el nombre del campo.
Devuelve el tamaño del campo field
en bytes, o false
en caso de error
Ejemplo #1 Ejemplo con oci_field_size()
<?php
// Creación de la tabla con:
// 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); // Utilización de OCI_DESCRIBE_ONLY si ninguna fila es recuperada
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";
// Muestra:
// 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);
?>
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.