num:= 6;
factorial := fact(num);
DBMS_OUTPUT.PUT_LINE(' Factorial '|| num || ' is ' || factorial);
END;
Factorial 6 is 720
PL/SQL procedure successfully completed.
Nazorat savollari
1. Kursor haqida tushuncha va uning turlari qanday?
2. Kursorlarda qanday fetch operatori bor?
3. Kursorlarda for operatori qanday?
4. Aniqlanmagan kursorlar bilan qanday ishlanadi?
5. Funksiya nima va undan qanday foydalanish mumkin?
6. Protsedura nima va undan qanday foydalanish mumkin?
12-LABORATORIYA ISHI
PL/SQL. Paketlar. Triggerlar bilan ishlash
Ishdan maqsad: ketma-ketliklar, paketlar va triggerlar yaratish va
ulardan foydalanishni o‘rganish.
Topshiriqlar:
1. DDL buyrug‘idan
foydalanib,
mySequence1 ketma-ketligini
yarating. Ushbu ketma-ketlik 100
raqami bilan boshlanib, 10 ga karrali
qiymatlar bilan doimiy ravishda o‘sishi kerak.
Boshqa ketma-ketlik
parametrlari uchun standart qiymatlarni qoldiring.
2.
schema_name.pkgFamily deb nomlangan paketni yarating, bu paket
o‘zida
fSalary funksiyasini va
pSalary protsedurasini saqlasin.
Funksiya
xodimning (o‘qituvchining) raqamini kirish parametri sifatida qabul qilishi
va bu xodimning ish haqini qaytarishi kerak. Protsedura esa xodimning
raqamiga ko‘ra, xodimning yangi ish haqi miqdorini aniqlasin. Protsedura
xodim uchun yangi ish haqini o‘zlashtirishi kerak.
3.
Kafedra nomi, o‘qituvchining familiyasi, ismi,
lavozimi va raqami
ko‘rsatilgan ko‘rinish yarating.
Ushbu ko‘rinish uchun DML operatsiyalari quyidagi qoidalarni
o‘rnating:
INSERT – O‘qituvchiga kafedrani tayinlang.
Natijada, jadval
yangilanadi.
UPDATE – o‘qituvchiga tayinlangan kafedrani o‘zgartiring.
DELETE – Xodim uchun bo‘lim identifikatorini o‘chiring (xodim hech
qanday bo‘limga yozilmagan). Natijada, id_kafedra
NULL sifatida
o‘rnatiladi.
Yuqoridagi qoidalarni amalga oshiruvchi va hosil qilingan ko‘rinishda
DML operatsiyalarini to‘g‘ri bajarishga imkon beruvchi trigger yarating.
Protsedura uchun kiruvchi ma’lumotlar – o‘qituvchining ismi, lavozimi
va kafedraning nomi.
Eslatma:
1) Ko‘rinish yaratish;
2) Har bir amal uchun jadvalga 1 ta trigger yarating,
trigger ichida
tekshruvni amalga oshiramiz: IF INSERTING THEN ... ELSIF UPDATING
THEN ... ELSIF DELETING THEN ... END IF;
3) Protsedura va triggerlarni yarating;
4. “PL/SQL. Paketlar. Triggerlar bilan ishlash” hisobotini tayyorlang;
5. Nazorat savollariga javob berib, laboratoriya ishini himoya qiling.