sql >> Base de Datos >  >> RDS >> Oracle

¿Hay alguna forma de dar un mensaje de error fácil de usar sobre la violación de restricciones?

Las restricciones son lo que usan las bases de datos para protegerse de las aplicaciones errantes. no de los usuarios.

Eso significa que las violaciones de restricciones deben ser capturadas por la aplicación y posiblemente limpiado para su presentación al usuario. Consideraría que una aplicación que no hiciera eso es deficiente de alguna manera.

Digo 'posiblemente' ya que su aplicación (al menos para este caso) nunca debería ver que eso suceda. Es casi seguro que debería usar un control desplegable de opción limitada para algo así. Si usaba un cuadro combinado o (conmoción, horror) un campo de entrada de texto de formato libre, sería necesario redefinirlo.

Eso significaría que la violación nunca ocurriría a menos que, por supuesto, la aplicación y la restricción no estén sincronizadas en algún momento. Pero eso es algo que debe detectarse en las pruebas, mucho antes de que un cliente ponga sus manitas sucias en su aplicación.

Para responder a su pregunta real, los mensajes que salen de Oracle para violaciones de restricciones no se pueden cambiar. Lo mejor que puede hacer es nombrar sus restricciones de manera inteligente para que tenga sentido para un usuario final.

Pero aún mantengo que esta presentación de problemas a un usuario es responsabilidad de la capa de la aplicación, no de la capa de la base de datos.