Vighairi vya ndani vinatolewa kwa njia isiyo dhahiri na mfumo wa muda wa utekelezaji, kama vile vighairi vilivyobainishwa na mtumiaji ambavyo umehusisha na nambari ya hitilafu ya Oracle kwa kutumia EXCEPTION_INIT. Hata hivyo, vighairi vingine vilivyobainishwa na mtumiaji lazima vionyeshwe kwa uwazi na taarifa za RAISE.
Je, ni tofauti zipi zimetolewa kwa njia isiyo dhahiri?
Vighairi vilivyoainishwa mapema vinatolewa kwa njia isiyo dhahiri (moja kwa moja) na mfumo wa wakati wa kutekeleza. Vighairi vilivyobainishwa na mtumiaji lazima vionyeshwe kwa uwazi na taarifa za RAISE. Ili kushughulikia hali zisizofuata kanuni zilizoibuliwa, unaandika taratibu tofauti zinazoitwa vidhibiti vya ubaguzi.
Ni ubaguzi gani unaotolewa kiotomatiki na Oracle?
Kighairi cha ndani kinatolewa kiotomatiki ikiwa mpango wako wa PL/SQL utakiuka sheria ya Oracle au ukivuka kikomo kinachotegemea mfumo. PL/SQL inafafanua mapema baadhi ya makosa ya kawaida ya Oracle kama vighairi. Kwa mfano, PL/SQL huongeza ubaguzi uliofafanuliwa awali NO_DATA_FOUND ikiwa taarifa ya SELECT INTO haileti safu mlalo.
Je, kuna ubaguzi gani katika Oracle?
Taarifa ya RAISE inasimamisha utekelezaji wa kawaida wa kizuizi cha PL/SQL au programu ndogo na kuhamisha udhibiti kwa kidhibiti cha mapendeleo. Taarifa za RAISE zinaweza kuibua vighairi vilivyobainishwa awali, kama vile ZERO_DIVIDE au NO_DATA_FOUND, au vighairi vilivyobainishwa na mtumiaji ambavyo utaamua majina yao.
Je, ni tofauti zipi ambazo hazijabainishwa awali?
Vighairi visivyoainishwa awali ni sawa na vighairi vilivyoainishwa awali, isipokuwahayana majina yaliyofafanuliwa awali. Wana nambari ya kawaida ya makosa ya Oracle (ORA-) na ujumbe wa makosa. Chaguo za kukokotoa EXCEPTION_INIT. Unaweza kunasa hitilafu ya seva isiyobainishwa awali ya Oracle kwa kuitangaza kwanza.