Kas Raise_application_error taandub?
Kas Raise_application_error taandub?

Video: Kas Raise_application_error taandub?

Video: Kas Raise_application_error taandub?
Video: DALÍ PODCAST #68 Mentor Kai Oja: „Kas Sa hakkad hiljem kahetsema, kui Sa seda ära ei tee?" 2024, November
Anonim

Päästiku sees a RAISE_APPLICATION_ERROR teeb seda ei soorita a TAGASI , katkestab see praeguse toimingu, st ühe UPDATE/INSERT/DELETE. A Tagasipööramine ennistab kõik praeguse tehingu muudatused (või kuni antud salvestuspunktini), see on erinev.

Mis on sel viisil Raise_application_error?

Vasta tõsta_rakenduse_viga on tegelikult Oracle'i defineeritud protseduur, mis võimaldab arendajal teha erandi ning seostada protseduuriga veanumbri ja teate. Oracle pakub tõsta_rakenduse_viga protseduur, mis võimaldab teil oma rakendustes kohandatud veanumbreid tõsta.

Veelgi enam, mis juhtub siis, kui tagasipööramislause käivitatakse päästiku sees? Kui päästik käivitub, praegune tehing pole ikka veel lõppenud. Kuna COMMIT lõpetab neid lubava tehingu käivitajates oleks murda tööühik. Nii et muutused täidetakse päästikuga on seotud (või tühistatud) omanditehinguga, mis väljastas DML-i, mis käivitas päästik.

Mis vahe on Pragma Exception_init ja Raise_application_error vahel?

pragma erandi init muudab Oracle'i vea nimega erandiks. Kui andmebaasi toiming tõstatab ORA-00054 "ressurss hõivatud", peaksite kodeerima:. Raise_application_error kasutatakse vea TEOSTAMISEKS - erandi_init kasutatakse vigade käsitlemiseks (võib öelda, et need on vastandid sees tee).

Mis on Sqlerrm?

SQLERRM Funktsioon. Funktsioon SQLERRM tagastab veateate, mis on seotud selle veanumbri argumendiga. Kui argument jäetakse välja, tagastab see tõrketeate, mis on seotud SQLCODE praeguse väärtusega. SQLERRM ilma argumendita on kasulik ainult erandikäsitlejas.

Soovitan: