Vai Raise_application_error tiek atcelta?
Vai Raise_application_error tiek atcelta?

Video: Vai Raise_application_error tiek atcelta?

Video: Vai Raise_application_error tiek atcelta?
Video: Нелогичная жизнь_Рассказ_Слушать 2024, Novembris
Anonim

Sprūda iekšpusē a To dara RAISE_APPLICATION_ERROR neveikt a ATGRIEŠANA , tas pārtrauc pašreizējo darbību, t.i., vienu UPDATE/INSERT/DELETE. A Atcelšana atgriež visas izmaiņas pašreizējā darījumā (vai līdz noteiktajam saglabāšanas punktam), tas ir savādāk.

Tādā veidā, kas ir Raise_application_error?

Atbildēt Raise_application_error patiesībā ir Oracle definēta procedūra, kas ļauj izstrādātājam izvirzīt izņēmumu un saistīt ar procedūru kļūdas numuru un ziņojumu. Oracle nodrošina Raise_application_error procedūra, kas ļauj palielināt pielāgotu kļūdu skaitu savās lietojumprogrammās.

Turklāt, kas notiks, ja trigera iekšpusē tiks izpildīts atcelšanas paziņojums? Kad sprūda aktivizē, pašreizējais darījums joprojām nav pabeigts. Tā kā COMMIT pārtrauc darījumu, kas viņiem ļauj trigeros būtu salauzt darba vienību. Tātad izmaiņas izpildīts trigerī ir veikti (vai atcelti) ar īpašumtiesību darījumu, kas izdeva DML, kas aktivizēja sprūda.

Tātad, kāda ir atšķirība starp Pragma Exception_init un Raise_application_error?

pragma izņēmums init pārvērš Oracle kļūdu par nosauktu izņēmumu. Ja datu bāzes darbība rada ORA-00054 "resurss aizņemts", jums ir jākodē:. Raise_application_error tiek izmantots, lai IZceltu kļūdu - izņēmums_init tiek izmantots, lai risinātu kļūdas (es domāju, ka varētu teikt, ka tās ir pretējas iekšā veids).

Kas ir Sqlerrm?

SQLERRM Funkcija. Funkcija SQLERRM atgriež kļūdas ziņojumu, kas saistīts ar tā kļūdas numura argumentu. Ja arguments tiek izlaists, tas atgriež kļūdas ziņojumu, kas saistīts ar pašreizējo SQLCODE vērtību. SQLERRM bez argumenta ir noderīga tikai izņēmumu apstrādātājā.

Ieteicams: