oci_fetch_array
En esta página
oci_fetch_array
Lee una línea de un resultado en forma de array asociativo o numérico
Descripción#
oci_fetch_array(resource $statement, [int $mode]): array
```php
Devuelve un array que contiene la siguiente línea de una consulta. Cada entrada de este array corresponde a una columna de la línea. Esta función se utiliza típicamente en un ciclo que devuelve `false` cuando ya no hay más líneas disponibles.
Si el parámetro `statement` corresponde a un bloque PL/SQL devuelto por juegos de resultados implícitos de Oracle Database, entonces las líneas de todos los juegos de resultados serán recuperadas consecutivamente. Si `statement` es devuelto por la función `oci_get_implicit_resultset`, entonces solo el subconjunto de líneas de una sola consulta hija será devuelto.
Para más detalles sobre el mapeo de tipos de datos realizado por la extensión OCI8, lea los [tipos de datos soportados por el driver](#oci8.datatypes).
## Parámetros
`statement`
Un identificador de consulta OCI8 creado por la función `oci_parse` y ejecutado por la función `oci_execute`, o un identificador de consulta `REF CURSOR`.
Puede ser también un identificador de consulta devuelto por la función `oci_get_implicit_resultset`.
`mode`
El parámetro opcional `mode` puede ser la combinación de las siguientes constantes:
| Constante | Descripción |
|----|----|
| `OCI_BOTH` | Devuelve un array, indexado numéricamente y con los nombres de columnas. Idéntico a `OCI_ASSOC` + `OCI_NUM`). Este es el comportamiento por defecto. |
| `OCI_ASSOC` | Devuelve un array asociativo. |
| `OCI_NUM` | Devuelve un array indexado numéricamente. |
| `OCI_RETURN_NULLS` | Crea elementos vacíos para los valores `null`. El valor de los elementos será el valor `null` de PHP. |
| `OCI_RETURN_LOBS` | Devuelve el contenido del LOB en lugar de su descriptor. |
Modos para `oci_fetch_array`
El `mode` por defecto es `OCI_BOTH`.
Utilice el operador de adición ""+"" para especificar más de un modo a la vez.
## Valores devueltos
Devuelve un array con índices numéricos o asociativos. Si ya no hay más líneas disponibles para la consulta `statement` entonces `false` será devuelto.
Por defecto, las columnas `LOB` son devueltas en forma de descriptores LOB.
Las columnas `DATE` son devueltas en forma de una cadena con el formato de fecha actual. El formato por defecto puede ser modificado mediante las variables de entorno de Oracle, como `NLS_LANG` o mediante la ejecución del comando `ALTER SESSION SET NLS_DATE_FORMAT`.
Los nombres de columnas que no son sensibles a mayúsculas/minúsculas (por defecto en Oracle), tendrán nombres de atributos en mayúsculas. Los nombres de columnas que son sensibles a mayúsculas/minúsculas, tendrán nombres de atributos utilizando exactamente la misma mayúscula/minúscula de la columna. Utilice la función `var_dump` sobre el objeto de resultado para verificar la mayúscula/minúscula apropiada a utilizar para cada consulta.
El nombre de la tabla no está incluido en el índice del array. Si su consulta contiene dos columnas diferentes con el mismo nombre, utilice la constante `OCI_NUM` o añada un alias a la columna en la consulta para asegurar la unicidad del nombre; ver el ejemplo \#7. De lo contrario, solo una columna será devuelta mediante PHP.
## Ejemplos
Ejemplo con `oci_fetch_array` con `OCI_BOTH`
\n"; } oci_free_statement($stid); oci_close($conn); ?>
Ejemplo con `oci_fetch_array` con `OCI_NUM`
\n"; // esto mostrará los 11 primeros bytes desde DESCRIPTION } // Muestra: // 1 // A very long oci_free_statement($stid); oci_close($conn); ?>
Ejemplo con `oci_fetch_array` con `OCI_ASSOC`
\n"; // esto mostrará los 11 primeros bytes desde DESCRIPTION } // Muestra: // 1 // A very long oci_free_statement($stid); oci_close($conn); ?>
Ejemplo con `oci_fetch_array` con `OCI_RETURN_NULLS`
`oci_fetch_array` con `OCI_RETURN_LOBS`
\n"; // contiene todo el contenido de DESCRIPTION // En un ciclo, liberar la variable antes de recuperar una segunda // línea permite reducir el uso de memoria de PHP unset($row); } // Muestra: // 1 // A very long string oci_free_statement($stid); oci_close($conn); ?>
Ejemplo con `oci_fetch_array` con nombres de columnas sensibles a mayúsculas/minúsculas
\n"; // muestra Melbourne oci_free_statement($stid); oci_close($conn); ?>
Ejemplo con `oci_fetch_array` con columnas que poseen nombres duplicados
Ejemplo con `oci_fetch_array` y columnas `DATE`
Ejemplo con `oci_fetch_array` y `REF CURSOR`
Paginación con `oci_fetch_array` utilizando una consulta que utiliza el parámetro `LIMIT`
\n"; } // Muestra: // Beijing 190518 // Bern 3095 // Bombay 490231 // Geneva 1730 // Hiroshima 6823 oci_free_statement($stid); oci_close($conn); ?>
Ejemplo con `oci_fetch_array` con Oracle Database
```php
Notas#
[!NOTE] Los índices de los arrays asociativos deben estar en mayúsculas para las columnas estándar de Oracle que han sido creadas con nombres sensibles a mayúsculas/minúsculas.
[!NOTE] Para las consultas que devuelven un número muy grande de líneas, el rendimiento puede ser muy significativamente mejorado aumentando el valor de la opción oci8.default_prefetch o usando la función
oci_set_prefetch.[!NOTE] La función
oci_fetch_arrayes significativamente más lenta que la funciónoci_fetch_assocooci_fetch_row, pero es más flexible.
Véase también#
oci_fetch, oci_fetch_all, oci_fetch_assoc, oci_fetch_object, oci_fetch_row, oci_set_prefetch