Mensajes de Error en Oracle

¿Cómo le hago para obtener los mensajes de error en Oracle?
Respuesta
1
Creo entender que quieres obtener los mensajes y su codugo para Guardarlos en alguna tabla.
Para ello, nos basaremos en una funcion("built-in") de oracle: SQLERRM(err_num), el cual devuelve el mensaje de error correspondiente al numero;
Un dato importante es que el parámetro "err_num" debe ser negativo!
Un ejemplo:
--
--
--
Declare
err_msg VARCHAR2(100);
err_num pls_integer;
BEGIN
FOR err_num IN 1000..1005 LOOP
err_msg := SQLERRM(-1*err_num);
if err_msg not like ('%Message%not found%')
then
dbms_output.put_line(err_msg);
end if;
END LOOP;
END;
/
--
--
--
La salida del código 1000 al 1005 es :
--
--
--
ORA-01000: maximum open cursors exceeded
ORA-01001: invalid cursor
ORA-01002: fetch out of sequence
ORA-01003: no statement parsed
ORA-01004: default username feature not supported; logon denied
ORA-01005: null password given; logon denied
--
--
--
Nota: en el for puedes colocar desde 1... 99999; lo coloque desde 1000... 1005 para ilustrar el ejemplo con la salida.
En donde se evalúa "if err_msg..." es para evitar mensajes no registrados por Oracle(Verifícalo), y es allí donde seria conveniente llenar una tabla.
En todo caso, recominedo que revises la documentacion: "PL/SQL User's Guide and Reference"; Especificamente el cap. "6 Error Handling". Esta muy bien documentado y el ejemplo utilizado alli es el modelo que siempre recomiendo.
Un cordial saludo,
_____________________________
Hugo Gonzalez,
Cc's Venezuela.
Excelente Respuesta ! Ya he revisado el manual y la variante que le pusiste en la evaluación del "if err_msg..." esta super. No sabia que dentro del PL/Sql permitía el "like...".
Gracias.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas