oci_error

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

oci_errorDevuelve el último error encontrado

Descripción

oci_error ([ resource $resource ] ) : array

Devuelve el último error encontrado.

La función debería ser invocada inmediatamente después de que ocurra un error. Los errores son limpiados por una sentencia que tenga éxito.

Parámetros

resource

Para la mayoría de errores, resource es el gestor de recurso que fue pasado a la función que falló. Para errores de conexión con oci_connect(), oci_new_connect() o oci_pconnect(), no pase resource.

Valores devueltos

Si no se encontró ningún error, oci_error() devuelve FALSE. De lo contrario, oci_error() devuelve la información del error como un array asociativo.

Descripción del array de oci_error()
Clave del array Tipo Descripción
code integer El número de error de Oracle.
message string El texto del error de Oracle.
offset integer La posición del byte de un error en una sentencia SQL. Si no existiera tal sentencia, este valor será 0
sqltext string El texto de la sentencia SQL. Si no existiera tal sentencia, este valor será una cadena vacía.

Ejemplos

Ejemplo #1 Mostrar el mensaje de error de Oracle después de un error de conexión

<?php
$conn 
oci_connect("hr""welcome""localhost/XE");
if (!
$conn) {
    
$e oci_error();   // Para errores de oci_connect errors, no pase un gestor
    
trigger_error(htmlentities($e['message']), E_USER_ERROR);
}
?>

Ejemplo #2 Mostrar el mensaje de error de Oracle después de un error de análisis

<?php
$stid 
oci_parse($conn"select ' from dual");  // observe la comilla simple dispareja
if (!$stid) {
    
$e oci_error($conn);  // Para errores de oci_parse, pase el gestor de conexión
    
trigger_error(htmlentities($e['message']), E_USER_ERROR);
}
?>

Ejemplo #3 Mostrar el mensaje de error de Oracle, la sentencia problemática, y la posición del problema en un error de ejecución

<?php
$stid 
oci_parse($conn"select does_not_exist from dual");
$r oci_execute($stid);
if (!
$r) {
    
$e oci_error($stid);  // Para errores de oci_execute, pase el gestor de sentencia
    
print htmlentities($e['message']);
    print 
"\n<pre>\n";
    print 
htmlentities($e['sqltext']);
    
printf("\n%".($e['offset']+1)."s""^");
    print  
"\n</pre>\n";
}
?>