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


    الدرس الحادي عشر

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

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

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

    الدرس الحادي عشر .....

    Creating Procedures

    يقصد بها هو انشاء اجراء معين على قاعدة البيانات بحيث تطبق تعليمة معينة او تستعلم تعليمة معينة

    قاعدة انشاء الProcedure

    رمز:
    CREATE [OR REPLACE] PROCEDURE procedure_name
    [ (parameter [,parameter]) ]
    IS
    [declaration_section]
    BEGIN
    executable_section
    [EXCEPTION
    exception_section]
    END [procedure_name];


    ويمكن ان نشرحها بالشكل التالي

    CREATE [OR REPLACE] PROCEDURE procedure_name

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


    [ (parameter [,parameter]) ]
    هذه الجزئية هي عبارة الباراميتر الداخل او الخارج من البروسيجر حيث عند استخدام الباراميتر وتعريف نوعه نستخدم ثلاث حالات وهي

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

    OUT وتعني قيمة الباراميتر الخارجة او الناتجة من البروسيجر

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

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



    IS

    وتعني التهيئة


    [declaration_section]
    هنا نعرف الباراميتر المختلفة والتي نستطيع استخدامها للبروسيجر

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

    [EXCEPTION
    exception_section]
    تستخدم في حال لم ينفذ الشرط


    END [PROCEDURE_name];

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

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


    رمز:
    CREATE OR REPLACE Procedure UpdateCourse
    ( name_in IN varchar2 )
    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;
    insert into student_courses
    ( course_name,
    course_number)
    values ( name_in,
    cnumber );
    commit;
    close c1;
    EXCEPTION
    WHEN OTHERS THEN
    raise_application_error(-20001,'An error was encountered - '||SQLCODE||' -ERROR- '||SQLERRM);
    END;

    هذا البروسيجر يأخذ رقم الكورس ويضيفه الى جدول الطلاب
    ويمكن استدعائه عن طريق التريجر مثلا وسوف نرى ذلك في الدرس القادم باذن الله



    الاسئلة
    1- ما هي الفائدة من البروسيجر ؟
    2-كيف نستطيع تحديد نوع الباراميتر اذا كان داخل او خارج ؟
    3-قم بانشاء بروسيجر يقوم بجمع رقمين وارجاعهما في جملة SELECT ?

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

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