الانتقال إلى المحتوى

ما الفرق بين ال Function و Procedure


أحمد السيد احمد

Recommended Posts

الفرق هو ان الfunction ترجع بقيمة معينة ناتجة عن عمليات حسابية أو استعلام أو خلافه أما الprocedure فلاترجع قيمة

رابط هذا التعليق
شارك

الفرق الجوهرى اخى الكريم كما ذكر اخى السابق ان الFunction لابد ان تقوم بإرجاع قيمه اما ال procedure فهو ايضا يمكن ان يقوم بإرجاع قيمه اذا كود مود الباراميتر من نوع OUT و لكن الهدف الرئيسى من الProcedure انه يقوم بتنفيذ Action معين مثل زياده الحوافز مثلا او اضافة سجلات جديده او حفظ التعديلات و هكذا ... اتمنى ان اكون افدتك

رابط هذا التعليق
شارك

اخى الكريم
كما قال الأخوة الأفاضل .

Function Return Value ... only one value .. if u need more .. concat then and use (-) to seperate between then and after that substr

Procedure
doesnt return any value .. it do some transactions then commit;
u can use it as a function using input output parameter.

Thx Sir.

رابط هذا التعليق
شارك

أخى وائل انا مختلف معك فى أن ال procedure
doesnt return any value
لأنه يمكن ان يعيد قيمه لو استخدمت باراميتر من نوع out و هذا مثال للتوضيح

CREATE OR REPLACE PROCEDURE format_phone
 (phone_no IN OUT VARCHAR2) IS
BEGIN
 phone_no := '(' || SUBSTR(phone_no,1,3) ||
		  ')' || SUBSTR(phone_no,4,3) ||
		  '-' || SUBSTR(phone_no,7);
END format_phone;
/


The procedure is executed and returns an updated string in the phone_no host variable.
VARIABLE phone_no VARCHAR2(15)
EXECUTE :phone_no := '8006330575' 
PRINT phone_no
EXECUTE format_phone (:phone_no)
PRINT phone_no


فهنا يقوم المستخدم بإدخال قيمه و تخرج قيمه اخر اذا يمكن للـ Procedure أن يقوم بإرجاء قيمه و لكن الأفضل فى ارجاع القيمه هى ال Function و الله المستعان

اتمنى ان اكون افدت

رابط هذا التعليق
شارك


اخى الكريم
كما قال الأخوة الأفاضل .

Function Return Value ... only one value .. if u need more .. concat then and use (-) to seperate between then and after that substr

Procedure
doesnt return any value .. it do some transactions then commit;
u can use it as a function using input output parameter.

Thx Sir.

اخى الكريم كما قال الاخوة الاعزاء ان الفرق بين ال function انها يجب ان ترجع قيمة معينة وال procedure ايضا يمكنها ان ترجع ايضا قيمة وذلك اذا كان ال mode من نوع inout لكن ال procedure تقوم بتنفيذ action معين غير ذلك
والمثال الذى وضعة الاخ العزيز استاذنا /سامح خير دليل وشاهد على هذا الكلام فارجو من الاخوة اذا كان غير متأكد من معلومة ان لا يقولها الا اذا كان متاكد منها حتى لا يحدث لبس على المبتدئين
فالمعلومة واضحة فى الماتريال الخاصة باوراكل والمثال شارح نفسة
والسلام عليكم
وارجو ان لا يغضب منى احد
انا لا انقض الا للفائدة العامة
وهو المطلوب من هذا المنتدى الكريم
رابط هذا التعليق
شارك

انضم إلى المناقشة

يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.

زائر
أضف رد على هذا الموضوع...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   تمت استعادة المحتوى السابق الخاص بك.   مسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

جاري التحميل
×
×
  • أضف...

برجاء الإنتباه

بإستخدامك للموقع فأنت تتعهد بالموافقة على هذه البنود: سياسة الخصوصية