Fortryder Raise_application_error?
Fortryder Raise_application_error?

Video: Fortryder Raise_application_error?

Video: Fortryder Raise_application_error?
Video: Fortryder? 2024, Kan
Anonim

Inde i en trigger a RAISE_APPLICATION_ERROR gør ikke udføre en TILBAGE , afbryder den den aktuelle handling, dvs. en enkelt OPDATERING/INSERT/DELETE. EN Rul tilbage fortryder alle ændringer inden for den aktuelle transaktion (eller op til et givet Savepoint), det er anderledes.

På denne måde, hvad er Raise_application_error?

Besvare raise_application_error er faktisk en procedure defineret af Oracle, der gør det muligt for udvikleren at rejse en undtagelse og knytte et fejlnummer og en meddelelse til proceduren. Oracle leverer raise_application_error procedure for at give dig mulighed for at hæve brugerdefinerede fejlnumre i dine applikationer.

Ydermere, hvad vil der ske, når en rollback-sætning udføres inde i en trigger? Når udløser affyrer den aktuelle transaktion er stadig ikke fuldført. Som COMMIT afslutter en transaktion, der tillader dem i triggere ville bryde arbejdsenheden. Så ændringer udført i en trigger er begået (eller rullet tilbage) af ejertransaktionen, som udstedte den DML, der udløste udløser.

Heraf, hvad er forskellen mellem Pragma Exception_init og Raise_application_error?

pragma exception init forvandler en Oracle-fejl til en navngivet undtagelse. Hvis en databaseoperation rejser en ORA-00054 "ressource optaget", skal du kode:. Raise_application_error bruges til at RÆSE en fejl - exception_init bruges til at håndtere fejl (jeg tror man kan sige, at de er modsætninger i en vej).

Hvad er Sqlerrm?

SQLERRM Fungere. Funktionen SQLERRM returnerer fejlmeddelelsen forbundet med dets fejlnummer-argument. Hvis argumentet udelades, returnerer det fejlmeddelelsen forbundet med den aktuelle værdi af SQLCODE. SQLERRM uden argument er kun nyttig i en undtagelsesbehandler.

Anbefalede: