¿Se revierte Raise_application_error?
¿Se revierte Raise_application_error?

Video: ¿Se revierte Raise_application_error?

Video: ¿Se revierte Raise_application_error?
Video: 2. An exception raised does not automatically roll back uncommitted changes to tables. 2024, Mayo
Anonim

Dentro de un gatillo un RAISE_APPLICATION_ERROR lo hace no realizar un RETROCEDER , aborta la operación actual, es decir, una única ACTUALIZACIÓN / INSERCIÓN / ELIMINACIÓN. A Retroceder revierte todos los cambios dentro de la transacción actual (o hasta un punto de guardado determinado), eso es diferente.

De esta forma, ¿qué es Raise_application_error?

Responder a la raise_application_error es en realidad un procedimiento definido por Oracle que permite al desarrollador generar una excepción y asociar un número de error y un mensaje con el procedimiento. Oracle proporciona el raise_application_error procedimiento que le permite generar números de error personalizados dentro de sus aplicaciones.

Además, ¿qué pasará cuando se ejecute una declaración de reversión dentro de un disparador? Cuando el desencadenar dispara la transacción actual aún no está completa. Cuando COMMIT termina una transacción que les permite en desencadenantes romper la unidad de trabajo. Entonces cambia ejecutado en un disparador están comprometidos (o revertidos) por la transacción propietaria que emitió el DML que disparó el desencadenar.

Por lo tanto, ¿cuál es la diferencia entre Pragma Exception_init y Raise_application_error?

pragma excepción init convierte un error de Oracle en una excepción con nombre. Si una operación de base de datos genera un "recurso ocupado" ORA-00054, tendría que codificar:. Raise_application_error se utiliza para PROVOCAR un error - excepción_init se usa para lidiar con errores (supongo que se podría decir que son opuestos en un camino).

¿Qué es Sqlerrm?

SQLERRM Función. La función SQLERRM devuelve el mensaje de error asociado con su argumento de número de error. Si se omite el argumento, devuelve el mensaje de error asociado con el valor actual de SQLCODE. SQLERRM sin argumento es útil solo en un manejador de excepciones.

Recomendado: