Saltar al contenido
WaitScope Entrar Solicitar acceso (por correo) Menú

Errores de Oracle en el trace

El hallazgo ERROS_ORACLE cuenta los errores ORA- grabados en el trace, menos el ORA-01403: cómo ver dónde apareció cada código y qué corregir.

Se aplica a: Traces 10046

El trace graba cada error que devuelve una llamada, incluso los que el PL/SQL trató y la aplicación nunca vio. El hallazgo cuenta esos errores y lleva a la lista de códigos, con lo que significa cada uno y dónde apareció.

Síntomas

En el Diagnóstico aparece el hallazgo n errores de Oracle en el trace (ERROS_ORACLE), o 1 error de Oracle en el trace. El texto recuerda que el ORA-01403 (fin de datos) no entra en la cuenta y termina con Ver errores.

El hallazgo aparece cuando el trace tiene al menos una línea ERROR o PARSE ERROR con un código distinto de ORA-01403. El número es la suma de las ocurrencias de todos los códigos, menos el 1403. La gravedad es siempre alta, incluso con un solo error, y el hallazgo no muestra porcentaje del tiempo total: no mide tiempo, pide que usted compruebe si el error es esperable.

Cuando el único código del trace es el ORA-01403, el hallazgo es otro: ORA-01403 (fin de datos) en el trace.

Causa

  • La línea ERROR registra el error devuelto por una llamada de un cursor, como un insert que violó la clave o un fetch cancelado por el cliente.
  • La línea PARSE ERROR registra un SQL que no compiló (sintaxis, objeto que no existe, falta de privilegio), con el texto del SQL justo debajo.
  • Los errores en SQL recursivo, dentro de PL/SQL o de un trigger, y los errores tratados en un bloque exception también aparecen, aunque la aplicación nunca los vea.

Cada error cuesta el trabajo hecho hasta él y deshacer la sentencia. Cuando el error llega a la aplicación, la sesión además espera SQL*Net break/reset to client, de la clase Application (espera por bloqueo de otra sesión).

Solución

  1. Haga clic en Ver errores.

    Resultado: una tarjeta por código, con Qué es, Cuándo aparece, Qué hacer y el enlace a la documentación de Oracle. Un código fuera del catálogo de la consola trae solo la nota Código fuera del catálogo de la consola. y el enlace.

  2. En Dónde apareció, revise Llamada, Sentencia, Prof., Ocurrencias, Primera vez y Línea de cada lugar del error.
  3. En la columna Prof., 0 significa que el error volvió a la aplicación; por encima de 0, que vino de SQL recursivo. En ese caso, compruebe si el PL/SQL trata el error o lo oculta con when others.
  4. Haga clic en la sentencia (#n) para abrir su detalle. En un PARSE ERROR, la columna Sentencia muestra el texto del SQL que no compiló.
  5. Corrija según la causa del código, empezando por los más comunes en un trace:
Códigos comunes en un trace y por dónde empezar
CódigoQué suele ser
ORA-00001Clave única violada: secuencia atrasada respecto de los datos, carga procesada dos veces o dos sesiones insertando la misma clave.
ORA-00060Deadlock: vea deadlock entre sesiones.
ORA-00942, ORA-00904Tabla, vista o columna que no existe para el usuario, en general en PARSE ERROR: objeto eliminado, sinónimo o privilegio que falta, SQL mal armado.
ORA-01013El cliente canceló la llamada, en general por el tiempo límite del driver. Revise el plan y las esperas de la sentencia antes de aumentar el límite.
ORA-01722Número no válido: conversión implícita de texto a número en un filtro o en una inserción.
ORA-04068Estado del paquete descartado: el paquete se recompiló mientras la sesión lo usaba.

Un error repetido muchas veces en la misma sentencia cuesta una ejecución en cada ocurrencia. El caso típico es el ORA-00001 en un bucle que inserta y trata la excepción: use merge en lugar de insertar y capturar el error.

En Dónde apareció, el lugar de un error en una variante de SQL que solo difiere en los literales apunta a la forma: la columna Sentencia trae el número y el texto de la forma, con la etiqueta N variantes, y el enlace abre su detalle. El PARSE ERROR, que no tiene cursor, sigue identificado por el texto del SQL que falló.

Cómo confirmar

  1. Corrija la causa del código que más aparece.
  2. Active el trace de la misma operación (activar el trace con DBMS_MONITOR).
  3. Envíe el archivo nuevo y abra el informe.
  4. Compare el número en el título del hallazgo y las ocurrencias de cada código en Errores.

Resultado: el código corregido desaparece de la sección Errores. El hallazgo desaparece cuando en el trace queda, como mucho, el ORA-01403.

En el informe

El informe de ejemplo no tiene errores, y la sección Errores solo aparece cuando el trace tiene alguno.

Actualizado el 29/10/2026. Informar un error en esta página