Saqlangan protsedura va funksiya
Saqlangan protseduralar va funksiyalar ikki turdagi dasturlash bloklaridir. Ularning ikkalasi ham chaqiruvchi ismlarga ega bo'lishi kerak. Ushbu chaqiruvchi nomlar ularni protsedura funktsiyalari va paketlari yoki SQL so'rovlari kabi boshqa dasturlash blokida chaqirish uchun ishlatiladi. Ushbu ikkala ob'ekt turi parametrlarni qabul qiladi va ushbu ob'ektlar orqasidagi vazifani bajaradi. Bu saqlangan protsedura yaratish sintaksisi (ORACLE da), protsessual protsedura nomini (parametrlarini) yaratish yoki almashtirish
as
boshlash
bayonotlar;
istisno
istisnolar bilan ishlash
end;
Va bu yerda funksiya yaratish sintaksisi (ORACLE da), funksiyani yaratish yoki almashtirish funksiya_nomi (parametrlar)
qaytish_ma'lumotlar turi
as
boshlash
bayonotlar;
qaytish_qiymati/oʻzgaruvchi;
istisno;
istisnolar bilan ishlash;
end;
Saqlangan protseduralar
Yuqorida aytib o'tilganidek, saqlangan protseduralar dasturlash bloklari deb ataladi. Ular parametrlarni foydalanuvchi kiritishi sifatida qabul qiladi va protsedura ortidagi mantiq bo'yicha ishlov beradi va natijani beradi (yoki ma'lum bir harakatni bajaradi). Bu parametrlar IN, OUT va INOUT turlari bo'lishi mumkin. O'zgaruvchilar deklaratsiyasi, o'zgaruvchilarni tayinlash, boshqaruv bayonotlari, tsikllar, SQL so'rovlari va boshqa funktsiyalar/protsedura/paket chaqiruvlari protseduralar doirasida bo'lishi mumkin.
Funksiyalar
Funksiyalar, shuningdek, RETURN iborasi yordamida qiymatni qaytarishi kerak bo'lgan dasturlash bloklari deb ataladi va u qiymatni qaytarishdan oldin uning tanasi ham ba'zi harakatlarni bajaradi (berilgan mantiq bo'yicha). Funktsiyalar ishlash uchun parametrlarni ham qabul qiladi. Funksiyalarni so'rovlar ichida chaqirish mumkin. Funktsiya SELECT so'rovi ichida chaqirilganda, u SELECT so'rovi natijalar to'plamining har bir qatoriga qo'llaniladi. ORACLE funksiyalarining bir nechta toifalari mavjud. Ular,
Bir qatorli funksiyalar (soʻrovning har bir satri uchun bitta natijani qaytaradi)
Bir qatorli funksiyalarning quyi toifalari mavjud.
- Raqamli funksiya (masalan: ABS, SIN, COS)
- Belgi funksiyasi (Masalan: CONCAT, INITCAP)
- Sana vaqt funksiyasi (Masalan: OXIRGI_KUN, KEYINGI_KUN)
- Konversiya funksiyalari (Masalan: TO_CHAR, TO_DATE)
- Toʻplash funksiyasi (Masalan: CARDINALITY, SET)
- Jamlash funksiyalari (Qatorlar guruhi asosida bitta qatorni qaytaradi. Masalan: AVG, SUM, MAX)
- Analitik funksiyalar
- Ob'ektga havola funksiyalari
- Model funktsiyalari
- Foydalanuvchi tomonidan belgilangan funksiyalar
Funksiya va Saqlangan protsedura o'rtasidagi farq nima?
• Barcha funksiyalar RETURN iborasi yordamida qiymat qaytarishi kerak. Saqlangan protseduralar RETURN iborasi yordamida qiymatlarni qaytarmaydi. Jarayon ichidagi RETURN iborasi uning boshqaruvini chaqiruvchi dasturga qaytaradi. OUT parametrlari saqlangan protseduralardan qiymatlarni qaytarish uchun ishlatilishi mumkin.
• Funksiyalarni soʻrovlar ichida chaqirish mumkin, lekin saqlangan protseduralarni soʻrovlar ichida ishlatib boʻlmaydi.
• Funksiya yaratish uchun RETURN maʼlumotlar turi kiritilishi kerak, lekin DDL saqlangan protsedurasida bunday emas.