Raise_application_error derulează înapoi?
Raise_application_error derulează înapoi?

Video: Raise_application_error derulează înapoi?

Video: Raise_application_error derulează înapoi?
Video: 9. Send app-specific error message with RAISE_APPLICATION_ERROR. 2024, Decembrie
Anonim

În interiorul unui declanșator a RAISE_APPLICATION_ERROR face nu efectua a ROLLBACK , anulează operațiunea curentă, adică un singur UPDATE/INSERT/DELETE. A Rollback revine toate modificările din tranzacția curentă (sau până la un punct de salvare dat), asta este diferit.

În acest fel, ce este Raise_application_error?

Raspunde la raise_application_error este de fapt o procedură definită de Oracle care permite dezvoltatorului să ridice o excepție și să asocieze un număr de eroare și un mesaj cu procedura. Oracle oferă raise_application_error procedură pentru a vă permite să ridicați numere de eroare personalizate în aplicațiile dvs.

Mai mult, ce se va întâmpla când o instrucțiune de rollback este executată în interiorul unui declanșator? Cand declanșatorul declanșează tranzacția curentă încă nu este finalizată. Pe măsură ce COMMIT încheie o tranzacție permițându-le în declanșatoare ar rupe unitatea de lucru. Deci schimbări executat într-un declanșator sunt comise (sau anulate) de către tranzacția deținătoare care a emis DML-ul care a declanșat declanșatorul.

Din acest motiv, care este diferența dintre Pragma Exception_init și Raise_application_error?

pragma exception init transformă o eroare Oracle într-o excepție numită. Dacă o operațiune de bază de date generează un ORA-00054 „resursa ocupată”, va trebui să codificați:. Raise_application_error este folosit pentru a ridica o eroare - exception_init este folosit pentru a face față erorilor (presupun că ați putea spune că sunt opuse într-o cale).

Ce este Sqlerrm?

SQLERRM Funcţie. Functia SQLERRM returnează mesajul de eroare asociat cu argumentul său numărul de eroare. Dacă argumentul este omis, returnează mesajul de eroare asociat cu valoarea curentă a SQLCODE. SQLERRM fără argument este util doar într-un handler de excepții.

Recomandat: