Saxlanılan Prosedur və Funksiya
Saxlanılan prosedurlar və funksiyalar iki növ proqramlaşdırma blokudur. Onların hər ikisinin çağırış adları olmalıdır. Bu çağırış adları onları prosedur funksiyaları və paketləri və ya SQL sorğuları kimi başqa proqramlaşdırma blokunun daxilində çağırmaq üçün istifadə olunur. Bu obyekt növlərinin hər ikisi parametrləri qəbul edir və həmin obyektlərin arxasındakı işi yerinə yetirir. Bu saxlanılan prosedur yaratmaq üçün sintaksisdir (ORACLE-də), prosedur proseduradı yaradın və ya dəyişdirin (parametrlər)
as
başla
bəyanatlar;
istisna
istisna ilə işləmə
son;
Və burada funksiya yaratmaq üçün sintaksis (ORACLE-də), funksiya yaradın və ya dəyişdirin funksiya_adı (parametrlər)
qaytarma_datatipi
as
başla
bəyanatlar;
qaytarma_dəyəri/dəyişən;
istisna;
istisna ilə işləmə;
son;
Saxlanılan Prosedurlar
Yuxarıda qeyd edildiyi kimi saxlanılan prosedurlar proqramlaşdırma blokları adlanır. Onlar parametrləri istifadəçi girişi kimi qəbul edir və prosedurun arxasında duran məntiqə uyğun olaraq proses aparır və nəticəni verir (yaxud konkret hərəkəti yerinə yetirir). Bu parametrlər IN, OUT və INOUT tipləri ola bilər. Dəyişən bəyannamələri, dəyişən təyinatları, nəzarət ifadələri, dövrələr, SQL sorğuları və digər funksiyalar/prosedur/paket çağırışları prosedurların daxilində ola bilər.
Funksiyalar
Funksiyalar həmçinin proqramlaşdırma blokları adlanır, onlar RETURN ifadəsindən istifadə edərək dəyər qaytarmalıdırlar və dəyəri qaytarmazdan əvvəl onun gövdəsi də bəzi hərəkətləri yerinə yetirir (verilmiş məntiqə uyğun olaraq). Funksiyalar həmçinin işləmək üçün parametrləri qəbul edir. Funksiyalar sorğuların içərisində çağırıla bilər. SELECT sorğusunda funksiya çağırıldıqda, o, SELECT sorğusunun nəticə dəstinin hər bir sırasına tətbiq edilir. ORACLE funksiyalarının bir neçə kateqoriyası var. Onlar,
Tək sıra funksiyaları (sorgunun hər sətri üçün tək nəticə qaytarır)
Bir sıra funksiyaların alt kateqoriyaları var.
- Rəqəm funksiyası (Məs: ABS, SIN, COS)
- Xarakter funksiyası (Məs: CONCAT, INITCAP)
- Tarix vaxt funksiyası (Məsələn: SON_GÜN, NEXT_GÜN)
- Dönüşüm funksiyaları (Məsələn: TO_CHAR, TO_DATE)
- Kolleksiya funksiyası (Məs: CARDINALITY, SET)
- Məcmu funksiyalar (Bir sıra sətirlər qrupuna əsasən tək cərgə qaytarır. Məsələn: AVG, SUM, MAX)
- Analitik funksiyalar
- Obyekt istinad funksiyaları
- Model funksiyaları
- İstifadəçi tərəfindən müəyyən edilmiş funksiyalar
Funksiya ilə Saxlanan Prosedur arasındakı fərq nədir?
• Bütün funksiyalar RETURN ifadəsindən istifadə edərək dəyər qaytarmalıdır. Saxlanılan prosedurlar RETURN ifadəsindən istifadə edərək dəyərləri qaytarmır. Prosedur daxilində RETURN ifadəsi onun nəzarətini çağıran proqrama qaytaracaq. OUT parametrləri saxlanılan prosedurlardan dəyərləri qaytarmaq üçün istifadə edilə bilər.
• Funksiyalar sorğular daxilində çağırıla bilər, lakin saxlanılan prosedurlar sorğuların içərisində istifadə edilə bilməz.
• Funksiya yaratmaq üçün RETURN məlumat növü daxil edilməlidir, lakin saxlanılan DDL prosedurunda deyil.