Mensajes de error en Oracle

angellvl
21 de Abril del 2005
Hola, me guataría poder mostrar el mensaje de una excepción de oracle sin que aparezca el típico "ORA-20100: ...." que acompaña a la excepción. La única forma que se me ocurre es delimitando el mensaje entre caracteres como por ejemplo # para luego mostrar solo lo que va entre esos caracteres. Se le ocurre a alguien otra forma?

Gracias por las respuestas

Juanra
21 de Abril del 2005
En los disparadores a nivel de formulario puedes añadir un disparador llamado ON_ERROR. Dentro de este te aconsejo que utilices:
IF ERROR_CODE = (el codigo de error que quieras) THEN
En esta parte muestras una alerta con SHOW_ALERT(nombrealerta), para ello tienes que tener creada una alerta con el mensaje personalizado que tu le pongas.
END IF;

Repite este bloque IF con todos los errores que quieras personalizar en el disparador ON_ERROR

angellvl
21 de Abril del 2005
Gracias por tu respuesta :-). Debería haber comentado que se trata de una aplicación asp.net en C#. Según lo que me comentas tendría que mostrar el mensaje de error en función del código de error. En .net tengo la clase OracleException que me da ese código de error, pero entonces tendría que tener mapeado de alguna forma el código de error con el mensaje asociado. Otro problema es por ejemplo los mensajes de error dinamico al estilo:

raise_application_error(-20100,'Error en el registro con ID: '||id);

Si mapeamos el codigo de error con un mensaje fijo nunca podriamos mostrar el mensaje de error que queremos mostrar (en este caso el id del registro que falló).

De momento he solucionado el problema poniendo entre # el mensaje de error y al capturar la excepción en .net por medio de una expresión regular obtengo el mensaje. No se si es la mejor solución... Si a alguien se le ocurre otra :o)

Saludos,