Основы (асослар)
Фойдаланувчи томонидан аниқланган мустаснолар
Download 0.95 Mb.
|
PL-SQL Маъруза матни
- Bu sahifa navigatsiya:
- Мустасноларни эълон қилиш
- Эълон қилиш қоидалари
- EXCEPTION_INIT фойдаланиш
Фойдаланувчи томонидан аниқланган мустасноларPL/SQL фойдаланувчига ўзининг мустасносини эълон қилишга имкон беради. Олдиндан аниқланган мустаснодан фарқли равишда фойдаланувчи томонидан аниқланган мустаснолар эълон қилиниши лозим ва RAISE жумласи ёрдамида ошкор тарзда содир этилиши шарт. Мустасноларни эълон қилишМустасноларни PL/SQL блоки, қисмпрограммаси ёки пакетнинг эълон қилиш қисмида эълон қилиш мумкин холос. Мустаснони унинг номини киритиш ва EXCEPTION таянч хизматчи сўз билан давом этириш лозим. Масалан: DECLARE past_due EXCEPTION; Эълон қилиш қоидалариБитта блокнинг ичида мустаснони икки марта эълон қилиш мумкин эмас. Аммо битта мустаснони иккита ҳар хил блокларда эълон қилиш мумкин ва уларга масалан қуйидагича мурожаат қилиш мумкин: Блок_меткаси.мустасно_номи Қуйидаги мисол битта мустаснони иккита ҳар хил блокларда эълон қилиш мумкинлигини намойиш этади: DECLARE past_due EXCEPTION; acct_num NUMBER; BEGIN DECLARE -- қисм-блок бошланиши past_due EXCEPTION; -- эълон қилиш prevails acct_num NUMBER; BEGIN ... IF ... THEN RAISE past_due; -- бунга ишлов берилмайди END IF; END; ------------- қисм-блок охири EXCEPTION WHEN past_due THEN -- содир этилган мустаснога ишлов берилмайди ... END; Охирги блокдаги мустаснога ишлов бериш қисми ишланмайди, чунки past_due мустаснонинг содир этиш ички блокда юз бериб, унда ищлов бериш қисми (ички блок ичида)мавжуд эмас. Бу ерда RAISE жумласи ва WHEN жумласи ҳар хил мустасноларга мурожаат қилаяпти. Охирги блокдаги мустаснога ишлов бериш қисми ишлаши учун past_due мустаснонинг эълон қилиш қисмини ички блокдан олиб ташлаш лозим ёки OTHERS ишлов бериш қисмини киритиш керак. EXCEPTION_INIT фойдаланишНомланмаган ички мустасноларга ищлов бериш учун OTHERS ишлов берувчидан ёки EXCEPTION_INIT прагмадан фойдаланишингиз мумкин. Прагма – бу компиляторга директива бўлиб хизмат қилади. PL/SQL-да EXCEPTION_INIT прагмаси мустасно номини Oracle хатолиги номери билан боглашга компиляторга кўрсатма беради. Бу эса ўз навбатида ихтиёрий ички мустаснога унинг номи орқали мурожаат қилишга ва унга ишлов берувчи ёзишга имкон беради. EXCEPTION_INIT прагмаси қуйидаги синтаксисга эга: PRAGMA EXCEPTION_INIT(мустасно_номи, Oracle_хатолиги_номери); Бу ерда мустасно_номи олдин эълон қилинган мустаснонинг номи. Прагма мустасно эълон қилингандан сўнг ихтиёрий жойда келиши мумкин. Масалан: DECLARE deadlock_detected EXCEPTION; PRAGMA EXCEPTION_INIT(deadlock_detected, -60); BEGIN ... EXCEPTION WHEN deadlock_detected THEN -- хатолик ишлов берилади END; Download 0.95 Mb. Do'stlaringiz bilan baham: |
ma'muriyatiga murojaat qiling