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
Devuelve el tamaño del campo dado por field
.
statement
Un identificador de sentencia de OCI válido.
field
Puede ser un índice de campo (basado en 1) o un nombre.
Devuelve el tamaño de field
en bytes, o false
en
caso de error.
Ejemplo #1 Ejemplo de oci_field_size()
<?php
// Crear 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); // 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";
// Salidas:
// 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);
?>
Nota:
En versiones de PHP anteriores a la 5.0.0 se debe usar ocicolumnsize() en su lugar. Este nombre aún se puede usar; se dejó como un alias de oci_field_size() por razones de retrocompatibilidad. Sin embargo, este nombre es obsoleto y no se recomienda.
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.