Återställs Raise_application_error?
Återställs Raise_application_error?

Video: Återställs Raise_application_error?

Video: Återställs Raise_application_error?
Video: Nedklottrat konstverk återställs - Max Gustafson 2024, December
Anonim

Inuti en trigger a RAISE_APPLICATION_ERROR gör det inte utföra a RULLA TILLBAKA , avbryter den aktuella operationen, dvs en enda UPPDATERING/INSERT/DELETE. A Rulla tillbaka återställer alla ändringar inom aktuell transaktion (eller upp till given Savepoint), det är annorlunda.

På så sätt, vad är Raise_application_error?

Svara raise_application_error är faktiskt en procedur definierad av Oracle som tillåter utvecklaren att ta fram ett undantag och associera ett felnummer och meddelande till proceduren. Oracle tillhandahåller raise_application_error procedur så att du kan höja anpassade felnummer i dina applikationer.

Dessutom, vad händer när en rollback-sats exekveras i en trigger? När utlösare avfyrar den aktuella transaktionen är fortfarande inte klar. Som COMMIT avslutar en transaktion som tillåter dem i triggers skulle bryta arbetsenheten. Så förändringar exekveras i en trigger har begåtts (eller återställts) av ägartransaktionen som utfärdade DML som avfyrade utlösare.

Därav, vad är skillnaden mellan Pragma Exception_init och Raise_application_error?

pragma exception init förvandlar ett Oracle-fel till ett namngivet undantag. Om en databasoperation ger en ORA-00054 "resurs upptagen", måste du koda:. Raise_application_error används för att höja ett fel - exception_init används för att hantera fel (jag antar att man kan säga att de är motsatser i en sätt).

Vad är Sqlerrm?

SQLERRM Fungera. Funktionen SQLERRM returnerar felmeddelandet som är kopplat till dess felnummerargument. Om argumentet utelämnas returnerar det felmeddelandet som är associerat med det aktuella värdet på SQLCODE. SQLERRM utan argument är endast användbar i en undantagshanterare.

Rekommenderad: