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


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



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

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


OPEN-FOR, FETCH, ва CLOSE жумлалари орқали курсор ўзгарувчисини бошқариш мумкин.

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


OPEN-FOR жумласи ўзгарувчисини кўп-қаторли сўров билан боғлайди, сўровни бажаради ва натижавий тўпламни аниқлайди. Унинг синтаксиси қуйидагича:
OPEN {курсор_ўзгарувчиси_номи |
:host_ курсор_ўзгарувчиси_номи }
FOR select_жумласи;
Масалан:
IF NOT emp_cv%ISOPEN THEN
/* Курсор ўзгарувчисини очиш */
OPEN emp_cv FOR SELECT * FROM emp;
END IF;
Курсор ўзгарувчиси формал параметр сифатида:
CREATE PACKAGE emp_data AS
...
TYPE EmpCurTyp IS REF CURSOR RETURN emp%ROWTYPE;
PROCEDURE open_emp_cv (emp_cv IN OUT EmpCurTyp);
END emp_data;
CREATE PACKAGE BODY emp_data AS
...
PROCEDURE open_emp_cv (emp_cv IN OUT EmpCurTyp) IS
BEGIN
OPEN emp_cv FOR SELECT * FROM emp;
END open_emp_cv;
END emp_data;

Курсор ўзгарувчиларини очиш учун алоҳида-сақланадиган процедуралардан ҳам фойдаланиш мумкин:


CREATE PACKAGE cv_types AS
TYPE GenericCurTyp IS REF CURSOR;
TYPE EmpCurTyp IS REF CURSOR RETURN emp%ROWTYPE;
TYPE DeptCurTyp IS REF CURSOR RETURN dept%ROWTYPE;
...
END cv_types;

Пакетда аниқланган курсордан фойдаланиш:


CREATE PROCEDURE open_emp_cv (emp_cv IN OUT cv_types.EmpCurTyp) AS
BEGIN
OPEN emp_cv FOR SELECT * FROM emp;
END open_emp_cv;

Шартга қараб курсорни очиш:


CREATE PACKAGE emp_data AS
TYPE GenericCurTyp IS REF CURSOR;
TYPE EmpCurTyp IS REF CURSOR RETURN emp%ROWTYPE;
PROCEDURE open_emp_cv (emp_cv IN OUT EmpCurTyp, choice NUMBER);
END emp_data;

CREATE PACKAGE BODY emp_data AS


PROCEDURE open_emp_cv (
emp_cv IN OUT EmpCurTyp,
choice NUMBER) IS
BEGIN
IF choice = 1 THEN
OPEN emp_cv FOR SELECT * FROM emp WHERE comm IS NOT NULL;
ELSIF choice = 2 THEN
OPEN emp_cv FOR SELECT * FROM emp WHERE sal > 2500;
ELSIF choice = 3 THEN
OPEN emp_cv FOR SELECT * FROM emp WHERE deptno = 20;
END IF;
END open_emp_cv;
END emp_data;

Қулайроқ бўлиши учун курсор ўзгарувчисини ҳар хил турни қайтарувчи сўровларни бажарувчи процедурага узатишингиз мумкин:


CREATE PACKAGE BODY emp_data AS
PROCEDURE open_cv (
generic_cv IN OUT GenericCurTyp,
choice NUMBER) IS
BEGIN
IF choice = 1 THEN
OPEN generic_cv FOR SELECT * FROM emp;
ELSIF choice = 2 THEN
OPEN generic_cv FOR SELECT * FROM dept;
ELSIF choice = 3 THEN
OPEN generic_cv FOR SELECT * FROM salgrade;
END IF;
END open_cv;
END emp_data;

Download 0,95 Mb.

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