Основы (асослар)



Download 0,95 Mb.
bet34/58
Sana10.07.2022
Hajmi0,95 Mb.
#771988
1   ...   30   31   32   33   34   35   36   37   ...   58
Bog'liq
PL-SQL Маъруза матни (2)

Хатоликлар


PL/SQL-да хато содир бўлиш шарти мустасно дейилади.
Мустаснолар тизим томонидан ёки фойдаланувчи томонидан аниқланиши мумкин. Тизим томонидан аниқланган мустаснога мисол сифатида нолга бўлиш ва хотира тўлиб кетиши кабиларни келитирш мумкин. Баъзи умумий тизим томонидан аниқланган мустаснолар ZERO_DIVIDE ва STORAGE_ERROR каби олдиндан аниқланган номларга эга.
Сиз ҳам фойдаланувчи сифатида ихтиёрий PL/SQL блокида, қисмдастурда ёки пакетда мустаснони аниқлашингиз мумкин. Фойдаланувчи томонидан аниқланган мустасно албатта номга эга бўлиши лозим.
Хатолик юз бериши билан мустасно содир бўлади. Тизим томонидан аниқланган мустаснолар автоматик тарзда тизим ишлаши жараёнида содир бўлади. Фойдаланувчи томонидан аниқланган мустасноларни эса сунъий тарзда RAISE жумласи ёрдамида содир этмоқ зарур.
Содир бўлган мустасноларга ишлов бериш учун алоҳида мустасно ишлов берувчиси деб номланувчи дастурни ёзишингиз лозим. Ишлов берувчи ишга тушишиши билан, жорий блокнинг бажарилиши тўхтатилади. Ишлов берувчи ишини тугатгандан сўнг бошқарув навбатдаги блокка узатилади. Мисол:
DECLARE
pe_ratio NUMBER(3,1);
BEGIN
SELECT price / earnings INTO pe_ratio FROM stocks
WHERE symbol = 'XYZ'; /* нолга_бўлиш
хатолиги юз бериши мумкин */
INSERT INTO stats (symbol, ratio) VALUES ('XYZ', pe_ratio);
COMMIT;
EXCEPTION -- мустасно ишлов берувчиси бошланиши
WHEN ZERO_DIVIDE THEN /* 'нолга бўлиш'
хатолигига ишлов беради */
INSERT INTO stats (symbol, ratio) VALUES ('XYZ', NULL);
COMMIT;
...
WHEN OTHERS THEN /* бошқа барча хатоликларга
ишлов беради */
ROLLBACK;
END;--мустасно ишлов берувчиси ва блокнинг охири
Нолга бўлиш хатолигини қуйидагича тузатиш мумкин:
INSERT INTO stats (symbol, ratio)
SELECT symbol, DECODE(earnings, 0, NULL, price / earnings)
FROM stocks WHERE symbol = 'XYZ';


Мустасноларнинг ижобий томонлари


Хатоликларга ишлов бериш учун мустаснолардан фойдаланиш қатор ижобий томонларга эга. Агарда мустасно ишлов берувчисидан фойдаланмасангиз, ҳар галда хатолик юз беришини текширишингиз лозим бўлади:
BEGIN
SELECT ...
--'берилганлар топилмади' хатолик юз беришини текшириш
SELECT ...
-- 'берилганлар топилмади' хатолик юз беришини текшириш SELECT ...
-- 'берилганлар топилмади' хатолик юз беришини текшириш
Агар мустасно ишлов берувчисидан фойдалансангиз, ушбу код қисқаради:
BEGIN
SELECT ...
SELECT ...
SELECT ...
...
EXCEPTION
WHEN NO_DATA_FOUND THEN -- барча'берилганлар топилмади' хатоликларини ушлайди

Download 0,95 Mb.

Do'stlaringiz bilan baham:
1   ...   30   31   32   33   34   35   36   37   ...   58




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish