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

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

صورة
- - - - -

الدرس الحادي عشر:انشاء البروسجير على قاعدةالبيانات


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

#1 أسامة موسى

أسامة موسى

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

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

تاريخ المشاركة 19 April 2006 - 01:06 PM

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

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

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;
fetch 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 ?

انتهى الدرس


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



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

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

#2 mdsalah

mdsalah

    عضو نشط

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

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

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

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



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

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

#3 slimono

slimono

    عضو

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

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

أعانك الله لفعل الخير صدقة جارية ان شاء الله
أخوك من الجزائر سليمونو <_<

#4 kingssongs

kingssongs

    عضو

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

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

يا انته يا ابداعاتك يا بطل

مشكور حبيبي

#5 osama80

osama80

    مشترك

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

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

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

#6 wlahmad

wlahmad

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

  • المجموعة الماسية
  • 252 مشاركة

تاريخ المشاركة 13 January 2007 - 12:13 AM

الله يعطيك العافية جهد جبار
لاحرمت اجره استاذي الفاضل

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

جلال شواقفه

    عضو مميز

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

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

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

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