Raise_application_error es reverti?
Raise_application_error es reverti?

Vídeo: Raise_application_error es reverti?

Vídeo: Raise_application_error es reverti?
Vídeo: 9. Send app-specific error message with RAISE_APPLICATION_ERROR. 2024, Maig
Anonim

Dins d'un disparador a RAISE_APPLICATION_ERROR ho fa no realitzar a ROLLBACK , avorta l'operació actual, és a dir, un únic UPDATE/INSERT/DELETE. A Retrocés reverteix tots els canvis dins de la transacció actual (o fins a un punt de desat donat), això és diferent.

D'aquesta manera, què és Raise_application_error?

Respondre a la raise_application_error és en realitat un procediment definit per Oracle que permet al desenvolupador plantejar una excepció i associar un número d'error i un missatge amb el procediment. Oracle proporciona el raise_application_error procediment que us permetrà augmentar els números d'error personalitzats a les vostres aplicacions.

A més, què passarà quan s'executi una instrucció de rollback dins d'un activador? Quan el disparador dispara que la transacció actual encara no s'ha completat. Com COMMIT finalitza una transacció que els permet en desencadenants seria trencar la unitat de treball. Per tant, canvis executat en un disparador són compromesos (o revertits) per la transacció propietaria que va emetre el DML que va disparar disparador.

Per això, quina diferència hi ha entre Pragma Exception_init i Raise_application_error?

pragma exception init converteix un error d'Oracle en una excepció anomenada. Si una operació de base de dades genera un "recurs ocupat" ORA-00054, hauríeu de codificar:. Raise_application_error s'utilitza per augmentar un error - exception_init s'utilitza per tractar errors (suposo que es podria dir que són oposats en a manera).

Què és Sqlerrm?

SQLERRM Funció. La funció SQLERRM retorna el missatge d'error associat al seu argument número d'error. Si s'omet l'argument, retorna el missatge d'error associat al valor actual de SQLCODE. SQLERRM sense argument només és útil en un controlador d'excepcions.

Recomanat: