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


Курсор ўзгарувчисидан қаторларни олиш



Download 0,95 Mb.
bet30/58
Sana10.07.2022
Hajmi0,95 Mb.
#771988
1   ...   26   27   28   29   30   31   32   33   ...   58
Bog'liq
PL-SQL Маъруза матни (2)

Курсор ўзгарувчисидан қаторларни олиш


FETCH жумласи кўп-қаторли сўровнинг натижавий тўпламидан қаторларни битта-битта олиш учун ишлатилади. Унинг синтаксиси:
FETCH {курсор_ўзгарувчиси_номи | :host_ курсор_ўзгарувчиси_номи }
INTO { ўзгарувчи_номи [,ўзгарувчи_номи]... | ёзув_номи};

Масалан:
LOOP


/* курсор ўзгарувчисидан қатор олиш. */
FETCH emp_cv INTO emp_rec;
EXIT WHEN emp_cv%NOTFOUND; /* охирги қатор олиниши билан цикл тугатилади */
--берилганларни ёзиш жараёни
END LOOP;


Курсор ўзгарувчисини ёпиш


CLOSE жумласи курсор ўзгарувчисини ёпади. Унинг синтаксиси:
CLOSE { курсор_ўзгарувчиси_номи | :host_ курсор_ўзгарувчиси_номи);

Масалан:
LOOP


FETCH emp_cv INTO emp_rec;
EXIT WHEN emp_cv%NOTFOUND;
-- берилганларни ёзиш жараёни
END LOOP;
/* курсор_ўзгарувчисини_ёпиш. */
CLOSE emp_cv;


1 мисол


Берилганлар базасидаги асосий библиотека даврий китоблари излаб топиб берувчи процедурани қараб чиқамиз.
CREATE PACKAGE cv_types AS
TYPE LibCurTyp IS REF CURSOR;
...
END cv_types;

CREATE PROCEDURE find_item (title VARCHAR2(100),


lib_cv IN OUT cv_types.LibCurTyp) AS
code BINARY_INTEGER;
BEGIN
SELECT item_code FROM titles INTO code
WHERE item_title = title;
IF code = 1 THEN
OPEN lib_cv FOR SELECT * FROM books
WHERE book_title = title;
ELSIF code = 2 THEN
OPEN lib_cv FOR SELECT * FROM periodicals
WHERE periodical_title = title;
ELSIF code = 3 THEN
OPEN lib_cv FOR SELECT * FROM tapes
WHERE tape_title = title;
END IF;
END find_item;

2 мисол


Библиотека филиалидаги мижоз томонидаги дастур олинган ахборотни кўриш учун қуйидаги PL/SQL блокидан фойдаланиш мумкин.
DECLARE
lib_cv cv_types.LibCurTyp;
book_rec books%ROWTYPE;
periodical_rec periodicals%ROWTYPE;
tape_rec tapes%ROWTYPE;
BEGIN
get_title(:title); -- title is a host variable
find_item(:title, lib_cv);
FETCH lib_cv INTO book_rec;
display_book(book_rec);
EXCEPTION
WHEN ROWTYPE_MISMATCH THEN
BEGIN
FETCH lib_cv INTO periodical_rec;
display_periodical(periodical_rec);
EXCEPTION
WHEN ROWTYPE_MISMATCH THEN
FETCH lib_cv INTO tape_rec;
display_tape(tape_rec);
END;
END;

Download 0,95 Mb.

Do'stlaringiz bilan baham:
1   ...   26   27   28   29   30   31   32   33   ...   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