Основы (асослар)
Download 0.95 Mb.
|
PL-SQL Маъруза матни
- Bu sahifa navigatsiya:
- VALUE операторидан фойдаланиш
- REF операторидан фойдаланиш
Объектларга сўров беришФараз қиламиз Person объект тури ва persons объектли жадвални ташкил қилувчи қуйидаги SQL*Plus скриптини бажаришга юбордингиз ва ушбу жадвални тўлидириш ниятидасиз: CREATE TYPE Person AS OBJECT ( first_name VARCHAR2(15), last_name VARCHAR2(15), birthday DATE, home_address Address, phone_number VARCHAR2(15)) / CREATE TABLE persons OF Person / Қуйидаги сўровости фақат Person объектлари атрибутларидан таркиб топган натижавий қаторлар тўпламини ишлаб чиқади: BEGIN INSERT INTO employees -- Person туридаги бошқа объектли жадвал SELECT * FROM persons p WHERE p.last_name LIKE '%Smith'; Натижавий объектлар тўпламини қайтариш учун VALUE операторидан фойдаланишингиз лозим. VALUE операторидан фойдаланишVALUE оператори объект қийматини қайтаради. VALUE оператори аргумент сифатида корелляцион ўзгарувчини қабул қилади. Биз бу ерда корелляцион ўзгарувчи деганда, қаторли ўзгарувчини ёки объектли жадвалнинг қатори билан боғлиқ бўлган жадвал ҳамроҳини тушунамиз. Масалан Person туридаги натижавий объектлар тўпламини қайтариш учун VALUE операторидан қуйидагича фойдаланинг: BEGIN INSERT INTO employees SELECT VALUE(p) FROM persons p WHERE p.last_name LIKE '%Smith'; Қуйидаги мисолда Person туридаги махсус объектни қайтариш учун VALUE операторидан фойдаланган: DECLARE p1 Person; p2 Person; ... BEGIN SELECT VALUE(p) INTO p1 FROM persons p WHERE p.last_name = 'Kroll'; p2 := p1; ... END; Бу ерда p1 локал Person объектидан таркиб топган бўлиб, охирги номи 'Kroll' бўлган сақланадиган объект нусхасидир ва p2 бошқа локал Person объекти бўлиб p1 объект нусхасидир: BEGIN p1.last_name := p1.last_name || 'Jr'; Энди p1 локал Person объектидаги охирги ном 'Kroll Jr' иборат. REF операторидан фойдаланишRefs-ни REF операторидан фойдаланиб очишингиз мумкин, бунда у аргумент сифатида корреляцион ўзгарувчини қабул қилади. Қуйидаги мисол ёрдамида сиз Person объектлари учун битта ёки ундан кўп refs очиб, сўнг уларни person_refs жадвалига ёзиб қўйишингиз мумкин: BEGIN INSERT INTO person_refs SELECT REF(p) FROM persons p WHERE p.last_name LIKE '%Smith'; Қуйидаги мисолда сиз ref ва атрибутни бир вақтнинг ўзида очишингиз мумкин: DECLARE p_ref REF Person; taxpayer_id VARCHAR2(9); BEGIN SELECT REF(p), p.ss_number INTO p_ref, taxpayer_id FROM persons p WHERE p.last_name = 'Parker'; -- битта қитор қайтариши лозим ... END; Охирги мисолда сиз Person объекти қийматини ўзгартирасиз: DECLARE p_ref REF Person; my_last_name VARCHAR2(15); ... BEGIN ... SELECT REF(p) INTO p_ref FROM persons p WHERE p.last_name = my_last_name; UPDATE persons p SET p = Person('Jill', 'Anders', '11-NOV-67', ...) WHERE REF(p) = p_ref; 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