A Raise_application_error visszaállítása?
A Raise_application_error visszaállítása?

Videó: A Raise_application_error visszaállítása?

Videó: A Raise_application_error visszaállítása?
Videó: 9. Send app-specific error message with RAISE_APPLICATION_ERROR. 2024, Lehet
Anonim

Egy kioldó belsejében a A RAISE_APPLICATION_ERROR igen nem hajt végre a VISSZATÉRÍTÉS , megszakítja az aktuális műveletet, azaz egyetlen UPDATE/INSERT/DELETE-t. A Visszagörgetés visszaállítja az összes változást az aktuális tranzakción belül (vagy az adott mentési pontig), ez más.

Ilyen módon mi a Raise_application_error?

Válaszoljon a rise_application_error valójában az Oracle által meghatározott eljárás, amely lehetővé teszi a fejlesztő számára, hogy kivételt állítson fel, és hibaszámot és üzenetet társítson az eljáráshoz. Az Oracle biztosítja a rise_application_error eljárás, amely lehetővé teszi egyéni hibaszámok emelését az alkalmazásokon belül.

Továbbá, mi fog történni, ha egy visszaállítási utasítás végrehajtásra kerül egy triggerben? Amikor az ravaszt aktivál, az aktuális tranzakció még mindig nem fejeződött be. Mivel a COMMIT felmond egy tranzakciót, amely lehetővé teszi számukra kiváltókban lenne törje meg a munkaegységet. Tehát változások triggerben hajtják végre lekötötte (vagy visszavonta) az a tulajdonosi tranzakció, amely kibocsátotta a DML-t, amely elindította a ravaszt.

Ebből kifolyólag mi a különbség a Pragma Exception_init és a Raise_application_error között?

pragma Az kivétel init az Oracle Error-t nevesített kivétellé alakítja. Ha egy adatbázis-művelet ORA-00054 "erőforrás foglalt" üzenetet vet fel, akkor kódolnia kell:. Raise_application_error hiba EMELÉSÉRE használatos - kivétel_init a hibák kezelésére használják (azt hiszem, mondhatni, hogy ellentétesek a út).

Mi az Sqlerrm?

SQLERRM Funkció. A funkció SQLERRM a hibaszám argumentumához tartozó hibaüzenetet adja vissza. Ha az argumentum kimarad, akkor az SQLCODE aktuális értékéhez tartozó hibaüzenetet adja vissza. SQLERRM argumentum nélkül csak kivételkezelőben hasznos.

Ajánlott: