Me gustaría utilizar una rutina ASSERT funcionalmente similar a la que se encuentra en otros idiomas, es decir, una construcción (ya sea un procedimiento, sintaxis ...)
ASSERT( <condition>, <msg>)
de modo que cuando se <condition>
pasa el primer argumento es falso, se genera una excepción con el <msg>
mensaje descriptivo especificado .
Sé que esto es trivial, pero estoy preguntando si hay un estándar provisto con el DBMS.
No sería práctico tener que escribir el mío o importar uno de los paquetes de 3rdy-party, ya que necesitaría que fuera completamente portátil y transparente para cada proyecto en el que estoy trabajando.
oracle
error-handling
usuario881430
fuente
fuente
Respuestas:
No hay un procedimiento de aserción incorporado en SQL o PL / SQL, por lo que tendrá que escribir el suyo.
Hay dos formas de hacerlo. Puede generar una excepción manualmente, como se describe en este artículo de Oracle , o puede escribir un contenedor para el
raise_application_error
procedimiento, que se documenta en la sección de manejo de excepciones de Oracle de la documentación.Agregaré que las excepciones fueron diseñadas para este tipo de escenario, por lo que sería mejor quitarse el sombrero de programador por un segundo y usar su sombrero de DBA :)
fuente
El paquete incorporado DBMS_ASSERT es una versión de alcance limitado de lo que está buscando. Para otras afirmaciones, Phil tiene razón, tendrá que construir la suya propia. Aquí hay una demostración simple de la segunda opción en la respuesta de Phil +1 :
fuente