النافذة العربية للبرمجة

النافذة العربية للبرمجة
 
الرئيسيةالمشاركاتمكتبة الصورس .و .جبحـثالأعضاءالمجموعاتالتسجيلدخول

شاطر | 
 

 الدرس العاشر : انشاء الفانكشن على قاعدة البيانات, ضمن سلسلة دروس كيف تبدأ في تعلم الأوراكل

استعرض الموضوع السابق استعرض الموضوع التالي اذهب الى الأسفل 
كاتب الموضوعرسالة
عبدالهادي الحداد
مدير الموقع
avatar

عدد الرسائل : 483
العمر : 32
الموقع : اليمن الحبيبة
العمل/الترفيه : طالب برمجة
تاريخ التسجيل : 13/06/2008

بطاقة الشخصية
المدير العام / عبدالهادي الحداد:

مُساهمةموضوع: الدرس العاشر : انشاء الفانكشن على قاعدة البيانات, ضمن سلسلة دروس كيف تبدأ في تعلم الأوراكل   الأربعاء يونيو 18, 2008 12:56 pm

السلام عليكم ورحمة الله وبركاته

الدرس العاشر

Creating Functions
يقصد بها هو انشاء اجراء معين على قاعدة البيانات بحيث تطبق تعليمة معينة او تستعلم تعليمة معينة ويمكن تريتيبها حسب التالي :
1-Function
2-Procedure
3- Trigger
قاعدة انشاء ال Function

كود
CREATE [OR REPLACE] FUNCTION function_name
[ (parameter [,parameter]) ]
RETURN return_datatype
IS | AS
[declaration_section]
BEGIN
executable_section
[EXCEPTION
exception_section]
END [function_name];
ويمكن ان نشرحها بالشكل التالي

CREATE [OR REPLACE] FUNCTION function_name
هنا نقوم بعمل او تبديل الفانكشن يعني نكتب CREATE OR REPLACE ثم نكتب FUNCTION
ثم نكتب اسم الفانكشن وفائدة الREPLACE هنا لتبديل البفانكشن القديم بالفانكشن الجديد الذي نريد انشائه

[ (parameter [,parameter]) ]

هذه الجزئية هي عبارة الباراميتر الداخل او الخارج من الفانكشن حيث عند استخدام الباراميتر وتعريف نوعه نستخدم ثلاث حالات وهي

IN وتعني قيمة الباراميتر الداخله للفانكشن والغير مرتجعه بها القيمة .

OUT وتعني قيمة الباراميتر الخارجة او الناتجة من الفانكشن

IN OUT وهي القيم الداخلة والخارجة حيث يدخل الباراميتر بقيمة ويرجع بقيمة اخرى

ونحن نعرف ان الفانكشن ترجع القيمة باسم الفانكشن نفسه

RETURN return_datatype

هنا نوع القيمة المراد ارجاعها في الفانكشن وتعني نوع الفانكشن هل هو رقم او حرف او غير ذلك

IS | AS

وتعني التهيئة ونستخدم عادة ال IS

[declaration_section]

هنا نعرف الباراميتر المختلفة والتي نستطيع استخدامها للفانكشن

BEGIN
executable_section

هنا نهئ الفانكشن لنبدأ بعملية ال SELECT او القايم بجمع او طرح او غير ذلك

[EXCEPTION
exception_section]

تستخدم في حال لم ينفذ الشرط


END [function_name];

وهنا ننهي الفانكشن مع كتابة اسم الفانكشن ويجب ان يكون مطابق للأسم الفانكشن

مثال على ماسبق


كود
CREATE OR REPLACE Function FindCourse
( name_in IN varchar2 )
RETURN number
IS
cnumber number;

cursor c1 is
select course_number
from courses_tbl
where course_name = name_in;

BEGIN

open c1;
fetch c1 into cnumber;

if c1%notfound then
cnumber := 9999;
end if;

close c1;

RETURN cnumber;

EXCEPTION
WHEN OTHERS THEN
raise_application_error(-20001,'An error was encountered - '||SQLCODE||' -ERROR- '||SQLERRM);
END;
هذا فانكشن يعمل على ايجاد الكيرسر الذي نعطيه اسمه لكي يرجع رقمه فاذا لم يستطع يرجع الرقم 999
ولاحظوا استخدام ال EXCEPTION

ولاحظوا كيف نئستطيع استدعاء الفانكشن في جملة الSELECT

كود

select course_name, FindCourse(course_name) as course_id
from courses
where subject = 'Mathematics';
الاسئلة
1- ما هي الفائدة من الفانكشن ؟
2-كيف نستطيع تحديد نوع الباراميتر اذا كان داخل او خارج ؟
3-قم بانشاء فانكشن يقوم بجمع رقمين وارجاعهما في جملة SELECT ?
الرجوع الى أعلى الصفحة اذهب الى الأسفل
معاينة صفحة البيانات الشخصي للعضو http://awfm.boardlog.com
محترف
مبرمج رائع
مبرمج رائع
avatar

عدد الرسائل : 144
العمر : 31
تاريخ التسجيل : 22/07/2008

بطاقة الشخصية
المدير العام / عبدالهادي الحداد:

مُساهمةموضوع: رد: الدرس العاشر : انشاء الفانكشن على قاعدة البيانات, ضمن سلسلة دروس كيف تبدأ في تعلم الأوراكل   الخميس أغسطس 14, 2008 5:20 am

مشكوووور يلغالي على هذا الموضوع
الرجوع الى أعلى الصفحة اذهب الى الأسفل
معاينة صفحة البيانات الشخصي للعضو
 
الدرس العاشر : انشاء الفانكشن على قاعدة البيانات, ضمن سلسلة دروس كيف تبدأ في تعلم الأوراكل
استعرض الموضوع السابق استعرض الموضوع التالي الرجوع الى أعلى الصفحة 
صفحة 1 من اصل 1

صلاحيات هذا المنتدى:لاتستطيع الرد على المواضيع في هذا المنتدى
النافذة العربية للبرمجة :: قسم قواعد البيانات :: Oracle قسم قواعد البيانات أوراكل-
انتقل الى: