بتـــــاريخ : 9/18/2008 11:56:30 PM
الفــــــــئة
  • الحـــــــــــاسب
  • التعليقات المشاهدات التقييمات
    0 1298 0


    الدرس العاشر

    الناقل : mahmoud | العمر :35 | الكاتب الأصلى : أسامة البسومي | المصدر : www.arabopn.com

    كلمات مفتاحية  :
    برامج SQL PLUS

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

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

    كلمات مفتاحية  :
    برامج SQL PLUS

    تعليقات الزوار ()