Reja: Paket spetsifikatsiyasi va tanani boshqarish Tetik tushunchalar va qo’llanilishi Tregger turlari Treggerni boshqarish mexanizimlari Dasturlarni boshlash pl\sql paketlari


PL/SQL paketlarining barqarorligi


Download 25.39 Kb.
bet3/3
Sana28.12.2022
Hajmi25.39 Kb.
#1070837
1   2   3
Bog'liq
3.1-Ma\'ruza



PL/SQL paketlarining barqarorligi:

Paketlar chaqirilishi bilanoq yuklanadi. O'zgaruvchilar UGA qismida joylashgan. Yuklangandan so'ng, ular sessiya davomida UGAda saqlanadi. Agar "PRAGMA SERIALLY_REUSABLE" iborasi ishlatilsa, dastur faqat chaqirilgan vaqt uchun xotiraga yuklanadi, keyin bu bo'sh joy bo'shatiladi. Agar biz xotira jihatidan cheklangan bo'lsak va sessiya davomida ochiq qolishimiz shart bo'lmasa foydali bo'ladi. Bundan tashqari, agar bizning ishimiz vaqtinchalik bo'lsa, biz paketlarimizda pragma ifodasini ishlatishimiz mumkin.

"Pragma Serially_reusable" spetsifikatsiyasiga misol:


PAKETI YARATING pkg1 IS
PRAGMA SERIALLY_REUSABLE;
NUMBER := 0;
PROCEDURE init_pkg_state(n NUMBER);
PROCEDURE print_pkg_state;
END pkg1;
/

"Pragma Serially_reusable" korpusiga misol:


PAKET MASASINI YARATING pkg1 IS


PRAGMA SERIALLY_REUSABLE;
PROCEDURE init_pkg_state (n NUMBER) IS
BOSHLASH
pkg1.num := n;
OXIRI;
PROCEDURE print_pkg_state IS
BOSHLASH
DBMS_OUTPUT.PUT_LINE('Son: ' || pkg1.num);
OXIRI;
END pkg1;
/

Pragma serially_reusable ham Body, ham Spec ta'riflarida qo'llaniladi. Ikkalasini ham ishlatish etarli emas.



Paketlarda PL/SQL yozuvlar jadvalidan foydalanish:

PL/SQL jadval tipidagi yozuvlardan foydalanish paketlarda ko'rsatilishi kerak bo'lgan jadvallardagi ustunlar asosida yaratiladigan jadvallar natijalarni vaqtincha saqlashini bildiradi. Bu ta'rifni misollarimizdan osonroq ko'rishimiz mumkin. Buning uchun avvalo paketimizda ushbu jadval turini aniqlashimiz kerak.

PAKETNI YARATISH YOKI ALSHIRISh emp_pkg IS


TYPE emp_table_type IS TABLE IS XODIMLAR JADVALI% QATLI INDEX BINARY INTEGER BO'YICHA;
PROCEDURE get_employees(p_emps OUT emp_table_type);
END emp_pkg;

Yuqoridagi misolimizda emp_table_type nomli o'zgaruvchilar turi "xodimlar" jadvalining barcha ustunlari asosida yaratilgan. Keyin ushbu turdagi o'zgaruvchini qaytarish uchun protsedura yoziladi. Shunday qilib, ushbu protsedurada get_employees-dagi ishlar bajariladi. Keyin qiymatlar ushbu ishlarga muvofiq p_emps nomli o'zgaruvchiga tashlanadi.

PAKET MASASI emp_pkg IS YARATISH YOKI ALSHIRISh
PROCEDURE get_employees(p_emps OUT emp_table_type) IS
v_i BINARY_INTEGER := 0;
BOSHLASH
emp_record IN UCHUN (Xodimlardan * TANLANG)
LOOP
p_emps(v_i) := emp_record;
v_i:= v_i + 1;
OXIRGI LOOP;
END get_employees;
END emp_pkg;

Biz yuqorida aytib o'tgan paketning asosiy qismida get_employees deb nomlangan protseduramiz tarkibini yaratamiz. Barcha ma'lumotlar "xodimlar" deb nomlangan jadvaldan olinadi va o'rnatiladi.

Quyida ushbu paketdan qanday foydalanishga misol keltirilgan.

E'lon qiling


v_employees emp_pkg.emp_table_type;
BOSHLASH
emp_pkg.get_employees(v_employees);
DBMS_OUTPUT.PUT_LINE('Emp 4: '||v_xodimlar(4).familiya);
OXIRI;

Misoldagi dasturda biz paketimizda aniqlagan jadval tipidagi o'zgaruvchini yaratamiz. keyin uni paketimizdagi get_employees protsedurasiga o'rnatamiz. Shunday qilib, biz jadvalimizni undagi qiymatlar bilan yaratamiz. Uni yaratgandan so'ng, biz xohlagan jadvalning indekslangan ma'lumotlarini olishimiz mumkin.



Nazorat savollari:

  1. PL/SQL paketlari nima?

  2. Paketlarning xususiyatlari nima?

  3. PL/SQL paketlarining barqarorligi nima?

  4. Paketlarda modulliylik nima?

Download 25.39 Kb.

Do'stlaringiz bilan baham:
1   2   3




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling