Acabo de recibir mi peor pesadilla de mantenimiento: un error silencioso.Oracle Odp.Net error no registrado en la llamada al procedimiento en el paquete no válido
Estaba llamando a un procedimiento utilizando Odp.Net dentro de un paquete personalizado, y la llamada de procedimiento falló silenciosamente sin ninguna excepción (verificada mediante una depuración paso a paso y una cláusula catch all). Después de mucha búsqueda, noté que el paquete se había invalidado (algunos errores en el servidor), después de recompilar el paquete, todo volvió a la normalidad (el código de la llamada era correcto y no se había modificado).
Dado que es realmente fácil invalidar un paquete accidentalmente en Oracle, necesito detectar este tipo de error, aunque solo sea para iniciar sesión en la depuración.
Con System.Data.OracleClient de MS se lanzó una OracleException en este caso, ¿hay alguna manera de obtener un comportamiento similar con Oracle.DataAccess de Oracle? Algún tipo de parámetro sqlnet.ora? No encontré ningún problema similar en ninguna parte de la red.
utilizando el servidor Oracle11R2, el último cliente Oracle Win32. .Net3.5.
Michel, no estoy seguro de que te guste esto pero utilizo odp.net y si trato de llamar a un paquete inválido obtengo excepciones, la excepción que veo en .net es fiel a la excepción en Oracle. Los procedimientos almacenados que llamamos casi siempre tienen un parámetro de salida, no sé si eso marcaría una diferencia (en el sentido de que forzaría a odp.net a hacer un postprocesamiento, lo que podría hacer que lanzara la excepción) – PeteH