Основы (асослар)
Коллекция элементларига мурожаат қилиш
Download 0.95 Mb.
|
PL-SQL Маъруза матни
- Bu sahifa navigatsiya:
- Коллекцияларга қиймат бериш ва солиштириш
Коллекция элементларига мурожаат қилишХар бир элементга мурожаат қилиш учун коллекция номи ва қавс ичига олинган индексни кўрсатиш лозим. Индекс қайси элеменга мурожаат қилинаётганлигини аниқлаб беради. Мурожаат қилишнинг синтаксиси қуйидагича: Коллекция_номи(индекс) бу ерда индекс бутун сонни қайтарувчи ифода. Индекслашган жадваллар учун рухсат этилган индекслар интервали -2147483647 .. 2147483647 ташкил қилади. Ичма-ич жойлашган жадваллар учун рухсат этилган индекслар интервали 1 .. 2147483647 иборат. Ва массивлар учун 1 .. ўлчов_чегараси. Барча ифодаларда коллекцияларга мурожаат қилиш мумкин. Қуйидаги мисолда ичма-ич жойлашган names жадвали элементларига мурожаат қилинаяпти: DECLARE TYPE Roster IS TABLE OF VARCHAR2(15); names Roster := Roster('J Hamil', 'D Caruso', 'R Singh', ...); i BINARY_INTEGER; BEGIN ... IF names(i) = 'J Hamil' THEN ... END IF; END; Қуйидаги мисолда қисмдастурларни чақиришда коллекцияларга мурожаат қилиш намойиш этилган: DECLARE TYPE Roster IS TABLE OF VARCHAR2(15); names Roster := Roster('J Hamil', 'D Piro', 'R Singh', ...); i BINARY_INTEGER; BEGIN ... verify_name(names(i)); -- процедурани чақириш END; Коллекцияни қайтарувчи функцияни чақиришда колеция элементига мурожаат қилиш учун қуйидаги синтаксисдан фойдаланинг: Функция_номи(параметрлар_рўйхати)(индекс) Қуйидаги мисолда new_hires функция қайтарадиган массивнинг учинчи элементига мурожаат қилинаяпти DECLARE TYPE Staff IS VARRAY(20) OF Employee; staffer Employee; FUNCTION new_hires (hiredate DATE) RETURN Staff IS ... BEGIN staffer := new_hires('16-OCT-96')(3); /* функцияни чақириш */ ... END; Коллекцияларга қиймат бериш ва солиштиришБитта коллекцияни бошкасига қиймат сифатида INSERT, UPDATE, FETCH, ёки SELECT жумлалари ёрдамида бериш мумкин. Бунда коллекциялар бир хил турга эга бўлиши лозим. Бир хил турдаги Элементларининг бир хил турлилиги етарли эмас. DECLARE TYPE Clientele IS VARRAY(100) OF Customer; TYPE Vips IS VARRAY(100) OF Customer; group1 Clientele := Clientele(...); group2 Clientele := Clientele(...); group3 Vips := Vips(...); BEGIN group2 := group1; group3 := group2; -- нотўғри, берилганлар тури ҳар хил Атомик null коллекцияни бошқа коллекцияга берсангиз, бошқа коллекция атомик null бўлиб қолади (ва қайтадан инициализация қилиниши лозим). Қуйидаги мисолни қараймиз: DECLARE TYPE Clientele IS TABLE OF Customer; group1 Clientele := Clientele(...); -- инициализация қилинди group2 Clientele; -- атомик null BEGIN IF group1 IS NULL THEN ... -– шарт FALSE қайтаради group1 := group2; IF group1 IS NULL THEN ... -– шарт TRUE қайтаради ... END; Шунга ўхшаб, агар коллекцияга NULL қиймат берилса, коллекция атомик null бўлади. 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