Prosedurlar vs Proqramlaşdırmada Funksiyalar
Proqramlaşdırmada Prosedurlar və Funksiyalar, proqramçılara təlimatları bir blokda qruplaşdırmağa imkan verir və onu proqram daxilində müxtəlif yerlərdən çağırmaq olar. Kodu başa düşmək daha asan və daha yığcam olur. Dəyişiklikləri bir yerdə etməklə, bütün kod təsirlənəcək. Funksiyalar və prosedurların köməyi ilə; xətti və uzun kodu müstəqil bölmələrə bölmək olar. Onlar müxtəlif proqramlaşdırma dillərinin və verilənlər bazalarının kodlaşdırılması üçün daha çox çeviklik təmin edir.
Funksiyalar nədir?
Funksiyalar həm də arqumentlər kimi tanınan parametrləri qəbul etməyə qadirdir. Bu arqumentlərə və ya parametrlərə uyğun olaraq tapşırıqları yerinə yetirirlər və verilmiş növlərin qiymətlərini qaytarırlar. Bunu bir nümunənin köməyi ilə daha yaxşı izah edə bilərik: Funksiya sətri parametr kimi qəbul edir və verilənlər bazasından ilk qeydi və ya qeydi qaytarır. Bu, belə simvollarla başlayan xüsusi sahənin məzmununu nəzərə alır.
Funksiyanın sintaksisi aşağıdakı kimidir:
FUNKSİYA YARADIN VƏ YA DƏYİŞTİN my_func
(p_name IN VARCHAR2:=‘Jack’) varchar2-ni başlanğıc kimi qaytarın … end
Prosedurlar nədir?
Prosedurlar parametrləri və ya arqumentləri qəbul edə bilər və bu parametrlərə uyğun olaraq tapşırıqları yerinə yetirirlər. Əgər prosedur sətri parametr kimi qəbul edirsə və o, verilənlər bazasında xüsusi sahənin məzmununun bu cür simvollarla başladığı qeydləri olan siyahı verirsə.
Prosedurların sintaksisi aşağıdakı kimidir:
PROSEDURU YARADIN və ya DƏYİŞTİN my_proc
(p_name IN VARCHAR2:='Jack') başlanğıc kimi … sonu
Əsasən, funksiya və prosedurlarda parametrin ötürülməsinin iki yolu var; dəyər və ya istinadla. Əgər parametr bir dəyər tərəfindən ötürülürsə; modifikasiya funksiya və ya prosedur daxilində onun faktiki dəyərinə təsir etmədən təsirlənir.
Digər tərəfdən, parametrlər istinadlarla keçərsə; bu parametrin faktiki dəyəri təlimatlara uyğun olaraq kod daxilində çağırıldığı yerdə dəyişdiriləcək.
Prosedurlar və funksiyalar arasındakı fərq
• Parametr prosedura ötürüldükdə; o heç bir dəyər qaytarmır, halbuki funksiya həmişə dəyər qaytarır.
• Hər ikisinin əsas fərqlərindən biri verilənlər bazasında prosedurların istifadə edilməməsi, funksiyaların isə verilənlər bazasından dəyərlərin qaytarılmasında mühüm rol oynamasıdır.
• Prosedurlar çoxlu dəyərləri qaytara bilir və funksiyalar məhdud dəyərləri qaytara bilir.
• DML əməliyyatları saxlanılan prosedurlarda istifadə edilə bilər; lakin onlar funksiyalarda mümkün deyil.
• Funksiyalar yalnız bir dəyər qaytara bilər və bu məcburidir, halbuki prosedurlar n və ya sıfır dəyər qaytara bilər.
• Funksiyalarda xətaların idarə edilməsi mümkün deyil, halbuki o, saxlanılan prosedurlarda həyata keçirilə bilər.
• Giriş və çıxış parametrləri prosedurlarda, funksiyalar zamanı isə ötürülə bilər; yalnız giriş parametrləri ötürülə bilər.
• Funksiyalar prosedurlardan çağırıla bilər, halbuki funksiyadan proseduru çağırmaq mümkün deyil.
• Tranzaksiyaların idarə edilməsi prosedurlarda nəzərdən keçirilə bilər və funksiyalar zamanı nəzərə alına bilməz.