Raise_application_error esegue il rollback?
Raise_application_error esegue il rollback?

Video: Raise_application_error esegue il rollback?

Video: Raise_application_error esegue il rollback?
Video: 2. An exception raised does not automatically roll back uncommitted changes to tables. 2024, Maggio
Anonim

All'interno di un trigger a RAISE_APPLICATION_ERROR fa non eseguire un RITORNO , interrompe l'operazione in corso, ovvero un singolo UPDATE/INSERT/DELETE. UN Rollback ripristina tutte le modifiche all'interno della transazione corrente (o fino a un determinato punto di salvataggio), è diverso.

In questo modo, cos'è Raise_application_error?

Rispondi al raise_application_error è in realtà una procedura definita da Oracle che consente allo sviluppatore di sollevare un'eccezione e associare un numero e un messaggio di errore alla procedura. Oracle fornisce il raise_application_error procedura per consentire di aumentare i numeri di errore personalizzati all'interno delle applicazioni.

Inoltre, cosa accadrà quando un'istruzione di rollback viene eseguita all'interno di un trigger? Quando il grilletto attiva la transazione corrente non è ancora completa. Poiché COMMIT termina una transazione che consente loro in trigger sarebbe rompere l'unità di lavoro. quindi cambia eseguito in un trigger sono commessi (o annullati) dalla transazione proprietaria che ha emesso il DML che ha attivato il grilletto.

Pertanto, qual è la differenza tra Pragma Exception_init e Raise_application_error?

pragma eccezione init trasforma un errore Oracle in un'eccezione denominata. Se un'operazione di database genera una "risorsa occupata" ORA-00054, dovresti codificare:. Raise_application_error è usato per SOLLEVARE un errore - eccezione_init è usato per gestire gli errori (credo si possa dire che sono opposti in un modo).

Cos'è Sqlerrm?

SQLERRM Funzione. La funzione SQLERRM restituisce il messaggio di errore associato al suo argomento numero di errore. Se l'argomento viene omesso, restituisce il messaggio di errore associato al valore corrente di SQLCODE. SQLERRM senza argomenti è utile solo in un gestore di eccezioni.

Consigliato: