Subprograms - Procedures
Subprograms - Procedures
Procedures
الكتل المعرفة – اإلجراءات – الوحدة السادسة
البرامج الفرعية او الكتل المعرفة او
Subprograms
• البرنامج الفرعي هي وحدة برنامج تؤدي مهمة معينة .يتم دمج هذه البرامج
الفرعية لتشكيل برامج أكبرُ .يطلق على هذا اسم "التصميم المعياري" .يمكن
استدعاء برنامج فرعي بواسطة برنامج فرعي آخر أو برنامج آخر يسمى استدعاء
للبرنامج.
• وهي الوحدات البرمجية التي لها اسم محدد عند تعريفها ويندرج ضمنها اإلجراءات
والدوال والزناد والحزم حيث يتم حفظها داخل قاعدة البيانات والرجوع اليها عند
الحاجة
• إعادة استخدام الكود :توجد البرامج الفرعية في مكان واحد عند تجميعها والتحقق من صحتها ،يمكن
استخدامها وإعادة استخدامها في أي عدد من التطبيقات
• تحسين أمان البياناتُ :يسمح بالوصول غير المباشر إلى كائنات قاعدة البيانات من خالل منح امتيازات
األمان على البرامج الفرعية .بشكل افتراضي يتم تشغيل البرامج الفرعية بامتيازات مالك البرنامج
الفرعي وليس امتيازات المستخدم
• تكامل البيانات :يمكن تجميع اإلجراءات ذات الصلة في كتلة وتنفيذها مًعا أو عدم تنفيذها على اإلطالق
• تحسين الكفاءة :يمكنك إعادة استخدام تعليمات PL / SQLالبرمجية المترجمة والمخزنة في ذاكرة
التخزين المؤقت لمنطقة SQLالمشتركة على الخادم.
• تحسين توضيح الكود :باستخدام األسماء والمصطلحات المناسبة لوصف عمل اإلجراءات الروتينية ،
يمكنك تقليل الحاجة إلى التعليقات.
ما هو االجراء ()Procedure؟
• عبارة عن كتلة PL/SQLمعرفة تستخدم لتنفيذ مهمة معينة تقبل متغيرات لتنفيذ
تلك اإلجراءات .
• الهيكل العام لألجراء:
• يتم انشاء parameterبعد اسم االجراء مباشرة كما في الهيكل العام لإلجراء
متبوعة بنوع البيانات
أوضاع تمرير المتغيرات :
• المعامل ( INالوضع االفتراضي) يوفر قيم للبرنامج الفرعي لمعالجتها – تستخدم للقراءة
فقط حيث يمكنك الرجوع إلى المعامل INداخل إجراء لكن ال يمكنك تغيير قيمتها.
• المعامل OUTقابلة للكتابة عادة ما تقوم بتعيين قيمة تم إرجاعها للمعامل OUTوإعادتها
إلى برنامج االستدعاء.
• المعامل IN OUTتوفر قيمة إدخال والتي يمكن إرجاعها كقيمة معدلة .وهي قابلة للقراءة
والكتابة حيث يمكن قراءة اإلجراء وتعديله .الحظ أن خيار OR REPLACEيسمح لك بالكتابة
فوق اإلجراء الحالي بالكود الجديد.
مثال 1تمرير متغير مع المعامل IN
مثال 2تمرير متغير مع المعامل IN
مثال مع المعامل OUT
مثال مع المعامل INOUT
حذف اجراء
• استخدم امر الحذف Dropمتبوعا باسم االجراء