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

  • تسجيل الدخول عبر الفيس بوك تسجيل الدخول عبر تويتر Log In with LinkedIn Log In with Google      تسجيل دخول    
  • إنشاء حساب

صورة
- - - - -

الدرس العاشر : انشاء الفانكشن على قاعدة البيانات


8 رد (ردود) على هذا الموضوع

#1 أسامة موسى

أسامة موسى

    مشرف سابق وعضو مميز

  • المجموعة الماسية
  • 2,381 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 17 April 2006 - 11:39 AM

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

الدرس العاشر
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 ?

انتهى الدرس
الدرس التاسع .... القائمة الرئيسية .... الدرس الحادي عشر
  • fiyad معجب بهذا
۩ اللهـــــــــــــــــــــــم صلي على سيدنا محمد وعلـى آله وصحبه أجمـعين ۩
۩ سبحـــــــــــــــــان الله وبحمده ....... سبحــــــــــــــــــــــــان الله العظيم ۩



يمكنك زيارتي على صفحتي الخاصة بالفيس بوك على الرابط AskOsama

يمكنك زيارتي على مدونتي الجديدة على الرابط http://askossama.blogspot.com

#2 oracle_itself

oracle_itself

    عضو نشط

  • فريق الإشراف
  • 365 مشاركة
  • الاسم الأول:Wael
  • اسم العائلة:Abdeen
  • البـلـد: Country Flag
  • المنصب الحالي:Manager

تاريخ المشاركة 19 April 2006 - 12:29 AM

شرح رائع اخى العزيز
طريقة سلسلة وجميلة

WAEL ABDEEN: Assistant Manager / Data Mgmt. Analyst

profile: linkedin profile

blog: waelabdeen.blogspot.com

facebook: facebook profile

skype: oracle_itself

email: oracle_itself@hotmail.com


#3 mdsalah

mdsalah

    عضو نشط

  • الأعضــاء
  • 398 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 03 June 2006 - 02:40 AM

مشكور اخى الفاضل واتمنى منك مزيد العطاء وجازاك الله خيرا وشكرا لهذا الموقع الاكثر من رائع ومزيد من التقدم
MDSALAH
اهم مواضيعى

فيديو شرح كامل لتنصيب Oracle Database 10g & Developer 10g , 6i, التعليم من منظور
جديد مرئى وصوت



MY 4 shared -1
MY 4 shared -2
ستجد بهما الكثير ( سى دى اوراكل _ برامج - dba- developer)

*عظَمة عقلك تخلق لك الحساد .. وعظَمة قلبك تخلق لك الأصدقاء

#4 slimono

slimono

    عضو

  • الأعضــاء
  • 3 مشاركة

تاريخ المشاركة 12 October 2006 - 01:22 AM

خير الناس من تعلم وعلم وأفاد الى ما فيه الخير للأمة المسلمة

وفقك الله أخوكم Slimono <_<

ملفات مرفقة

  • ملف مرفق  11.jpg   6.93كيلو   14 عدد مرات التحميل
  • ملف مرفق  11.jpg   6.93كيلو   14 عدد مرات التحميل


#5 kingssongs

kingssongs

    عضو

  • الأعضــاء
  • 33 مشاركة

تاريخ المشاركة 16 October 2006 - 02:01 PM

بارك الله بيك
الف شكر

#6 osama80

osama80

    مشترك

  • الأعضــاء
  • 84 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 29 November 2006 - 02:10 PM

بارك الله فيك اخي الفاضل أسامة و اتمنى من الله ان يتم عليكم بثمرة هذا العمل و تحمل أمانة العلم

#7 sniper_ocp

sniper_ocp

    مشترك

  • الأعضــاء
  • 61 مشاركة

تاريخ المشاركة 27 May 2007 - 12:17 PM

جزاك الله كل خير

#8 jasmen

jasmen

    عضو

  • الأعضــاء
  • 4 مشاركة

تاريخ المشاركة 27 May 2007 - 04:24 PM

جزاك الله خير أخى اسامه وجعله الله فى ميزان حسناتك

#9 جلال شواقفه

جلال شواقفه

    عضو مميز

  • الأعضــاء
  • 2,559 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 31 October 2007 - 07:43 PM

احسنت ولك كل الاحترام والتقدير على مواضيعك
ارجو من يستفيد من مشاركاتي الدعاء لوالدي ولاموات المسلمين بالمغفره والرحمه......

جلال محمود شواقفه
مدير دائرة الحاسوب
بلدية المفرق الكبرى
المملكه الاردنيه الهاشميه.