Da li se Raise_application_error vraća nazad?
Da li se Raise_application_error vraća nazad?

Video: Da li se Raise_application_error vraća nazad?

Video: Da li se Raise_application_error vraća nazad?
Video: PL/SQL tutorial 48: Declare User-Define Exception using RAISE_APPLICATION_ERROR 2024, Maj
Anonim

Unutar okidača a RAISE_APPLICATION_ERROR radi ne izvoditi a ROLLBACK , prekida trenutnu operaciju, tj. jedno UPDATE/INSERT/DELETE. A Rollback vraća sve promjene unutar tekuće transakcije (ili do date Savepoint), to je drugačije.

Na ovaj način, šta je Raise_application_error?

Odgovoriti na raise_application_error je zapravo procedura koju definiše Oracle koja omogućava programeru da pokrene izuzetak i poveže broj greške i poruku sa procedurom. Oracle pruža raise_application_error procedura koja vam omogućava da povećate prilagođene brojeve grešaka u vašim aplikacijama.

Štaviše, šta će se dogoditi kada se naredba za vraćanje izvrši unutar okidača? Kada je okidač pali trenutna transakcija još uvijek nije dovršena. Kako COMMIT prekida transakciju dozvoljavajući im u okidačima bi razbiti jedinicu rada. Dakle promjene izvršeno u okidaču su počinili (ili vraćeni) od strane vlasničke transakcije koja je izdala DML koji je pokrenuo okidač.

Stoga, koja je razlika između Pragma Exception_init i Raise_application_error?

pragma izuzetak init pretvara Oracle grešku u imenovani izuzetak. Ako operacija baze podataka podiže ORA-00054 "resurs zauzet", morali biste kodirati:. Raise_application_error koristi se za PODIZANJE greške - izuzetak_init koristi se za rješavanje grešaka (pretpostavljam da bi se moglo reći da su suprotnosti u način).

Šta je Sqlerrm?

SQLERRM Funkcija. Funkcija SQLERRM vraća poruku o grešci pridruženu njegovom argumentu broj greške. Ako je argument izostavljen, vraća poruku o grešci pridruženu trenutnoj vrijednosti SQLCODE. SQLERRM bez argumenta je koristan samo u rukovatelju izuzetaka.

Preporučuje se: