Основы (асослар)
Курсор ўзгарувчисидан қаторларни олиш
Download 0.95 Mb.
|
PL-SQL Маъруза матни
- Bu sahifa navigatsiya:
- Курсор ўзгарувчисини ёпиш
- 1 мисол
- 2 мисол
Курсор ўзгарувчисидан қаторларни олишFETCH жумласи кўп-қаторли сўровнинг натижавий тўпламидан қаторларни битта-битта олиш учун ишлатилади. Унинг синтаксиси: FETCH {курсор_ўзгарувчиси_номи | :host_ курсор_ўзгарувчиси_номи } INTO { ўзгарувчи_номи [,ўзгарувчи_номи]... | ёзув_номи}; Масалан:
/* курсор ўзгарувчисидан қатор олиш. */ FETCH emp_cv INTO emp_rec; EXIT WHEN emp_cv%NOTFOUND; /* охирги қатор олиниши билан цикл тугатилади */ --берилганларни ёзиш жараёни END LOOP; Курсор ўзгарувчисини ёпишCLOSE жумласи курсор ўзгарувчисини ёпади. Унинг синтаксиси: CLOSE { курсор_ўзгарувчиси_номи | :host_ курсор_ўзгарувчиси_номи); Масалан:
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: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling