Rollback ba ang Raise_application_error?
Rollback ba ang Raise_application_error?

Video: Rollback ba ang Raise_application_error?

Video: Rollback ba ang Raise_application_error?
Video: 9. Send app-specific error message with RAISE_APPLICATION_ERROR. 2024, Nobyembre
Anonim

Sa loob ng isang gatilyo a Ang RAISE_APPLICATION_ERROR ay ginagawa hindi gumanap a ROLLBACK , inaabort nito ang kasalukuyang operasyon, ibig sabihin, iisang UPDATE/INSERT/DELETE. A Rollback ibinabalik ang lahat ng mga pagbabago sa kasalukuyang transaksyon (o hanggang sa ibinigay na Savepoint), iba iyon.

Sa ganitong paraan, ano ang Raise_application_error?

Sagutin ang itaas ang_application_error ay talagang isang pamamaraan na tinukoy ng Oracle na nagpapahintulot sa developer na magtaas ng eksepsiyon at mag-ugnay ng numero ng error at mensahe sa pamamaraan. Nagbibigay ang Oracle ng itaas ang_application_error pamamaraan upang payagan kang itaas ang mga custom na numero ng error sa loob ng iyong mga application.

Higit pa rito, ano ang mangyayari kapag ang isang rollback na pahayag ay naisakatuparan sa loob ng isang trigger? Kapag ang gatilyo hindi pa rin kumpleto ang kasalukuyang transaksyon. Habang tinatapos ng COMMIT ang isang transaksyon na nagpapahintulot sa kanila sa mga trigger ay sirain ang yunit ng trabaho. Kaya nagbabago isinagawa sa isang trigger ay ginawa (o ibinalik) ng nagmamay-ari na transaksyon na naglabas ng DML na nagpagana sa gatilyo.

Doon, ano ang pagkakaiba sa pagitan ng Pragma Exception_init at Raise_application_error?

pragma Ang exception init ay nagiging isang Oracle Error sa isang pinangalanang exception. Kung ang isang database operation ay nagtaas ng ORA-00054 "resource busy", kailangan mong i-code:. Itaas ang_application_error ay ginagamit upang ITAAS ang isang error - exception_init ay ginagamit upang harapin ang mga pagkakamali (hulaan ko maaari mong sabihin na sila ay magkasalungat sa isang paraan).

Ano ang Sqlerrm?

SQLERRM Function. Ang function SQLERRM ibinabalik ang mensahe ng error na nauugnay sa argumento ng error-number nito. Kung aalisin ang argumento, ibinabalik nito ang mensahe ng error na nauugnay sa kasalukuyang halaga ng SQLCODE. SQLERRM na walang argumento ay kapaki-pakinabang lamang sa isang exception handler.

Inirerekumendang: