Vraća li se Raise_application_error unatrag?
Vraća li se Raise_application_error unatrag?

Video: Vraća li se Raise_application_error unatrag?

Video: Vraća li se Raise_application_error unatrag?
Video: Странное открытие! ~ Заброшенный замок в стиле Хогвартс 17 века 2024, Svibanj
Anonim

Unutar okidača a RAISE_APPLICATION_ERROR radi ne izvoditi a VRANJE , prekida trenutnu operaciju, tj. jedno UPDATE/INSERT/DELETE. A Vraćanje unatrag poništava sve promjene unutar trenutne transakcije (ili do zadane Savepoint), to je drugačije.

Na taj način, što je Raise_application_error?

Odgovoriti povisiti_application_error je zapravo procedura definirana od strane Oraclea koja omogućuje razvojnom programeru da podigne iznimku i poveže broj pogreške i poruku s procedurom. Oracle pruža povisiti_application_error postupak koji vam omogućuje da povećate prilagođene brojeve pogrešaka unutar svojih aplikacija.

Nadalje, što će se dogoditi kada se naredba rollback izvrši unutar okidača? Kada okidač pali trenutna transakcija još uvijek nije dovršena. Kako COMMIT prekida transakciju dopuštajući im u okidačima bi razbiti jedinicu rada. Dakle promjene izvršeno u okidaču su počinili (ili poništili) vlasnička transakcija 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 imenovanu iznimku. Ako operacija baze podataka podiže ORA-00054 "resurs zauzet", morali biste kodirati:. Raise_application_error koristi se za PODIZANJE pogreške - iznimka_init koristi se za rješavanje grešaka (pretpostavljam da bi se moglo reći da su suprotnosti u put).

Što je Sqlerrm?

SQLERRM Funkcija. Funkcija SQLERRM vraća poruku o pogrešci povezanu s argumentom broja pogreške. Ako je argument izostavljen, vraća poruku o pogrešci povezanu s trenutnom vrijednošću SQLCODE. SQLERRM bez argumenta je koristan samo u obrađivaču izuzetaka.

Preporučeni: