Ar Raise_application_error atšaukiamas?
Ar Raise_application_error atšaukiamas?

Video: Ar Raise_application_error atšaukiamas?

Video: Ar Raise_application_error atšaukiamas?
Video: How bad weather can affect the cruise 2024, Lapkritis
Anonim

Trigerio viduje a RAISE_APPLICATION_ERROR veikia neatlikti a ATGALIMAS , jis nutraukia dabartinę operaciją, t. y. vieną UPDATE / INSERT / DELETE. A Atšaukimas grąžina visus dabartinės operacijos pakeitimus (arba iki nurodyto išsaugojimo taško), tai skiriasi.

Tokiu būdu, kas yra Raise_application_error?

Atsakyti pakelti_programos_klaidą iš tikrųjų yra „Oracle“apibrėžta procedūra, leidžianti kūrėjui nustatyti išimtį ir susieti klaidos numerį bei pranešimą su procedūra. „Oracle“teikia pakelti_programos_klaidą procedūra, leidžianti padidinti pasirinktinį klaidų skaičių jūsų programose.

Be to, kas atsitiks, kai aktyviklio viduje bus vykdomas atšaukimo sakinys? Kai paleidiklis suaktyvina dabartinė operacija vis dar nebaigta. Kadangi COMMIT nutraukia jiems leidžiančią operaciją trigeriuose būtų sulaužyti darbo vienetą. Taigi pokyčiai įvykdytas trigeryje yra įsipareigoję (arba atšaukti) dėl nuosavybės operacijos, kuri išdavė DML, dėl kurios buvo pradėtas paleidiklis.

Taigi, kuo skiriasi Pragma Exception_init ir Raise_application_error?

pragma išimtis init paverčia Oracle klaidą pavadinta išimtimi. Jei duomenų bazės operacija iškelia ORA-00054 „išteklius užimtas“, turėsite koduoti:. Raise_application_error naudojamas klaidai PAkelti - išimtis_init naudojamas sprendžiant klaidas (manau, galima sakyti, kad jos yra priešingos a būdas).

Kas yra Sqlerrm?

SQLERRM Funkcija. Funkcija SQLERRM grąžina klaidos pranešimą, susijusį su klaidos numerio argumentu. Jei argumentas praleistas, jis grąžina klaidos pranešimą, susietą su dabartine SQLCODE reikšme. SQLERRM be argumento yra naudingas tik išimčių tvarkyklėje.

Rekomenduojamas: