البرمجة

Incorporating Oracle Stored Procedures for Efficient Data Insertion

في Oracle، يختلف النحو الذي يتم به إدراج القيم في إجراء تخزين مؤرشف بالمقارنة مع SQL Server. يتطلب ذلك استخدام نوع بيانات REF CURSOR للإجراء، وتعيين قيم محددة لمعلمات الإدراج. فيما يلي مثال على كيفية إعداد إجراء تخزين Oracle لإدراج قيم في جدول “PRODUCT” باستخدام قاعدة البيانات Oracle:

sql
CREATE OR REPLACE PROCEDURE INSERTPRODUCTRECORD ( PNAME_IN VARCHAR2, CATEGORY_IN VARCHAR2, PRICE_IN NUMBER ) AS BEGIN INSERT INTO PRODUCT (PNAME, CATEGORY, PRICE) VALUES (PNAME_IN, CATEGORY_IN, PRICE_IN); COMMIT; -- لحفظ التغييرات END INSERTPRODUCTRECORD; /

هذا الإجراء يأخذ ثلاثة معاملات: PNAME_IN (اسم المنتج)، CATEGORY_IN (الفئة)، و PRICE_IN (السعر). يتم إجراء الإدراج باستخدام جملة INSERT INTO التي تعتمد على قيم هذه المعاملات.

من أجل الحفاظ على تسجيل التغييرات، يتم استخدام COMMIT في النهاية. يتم تعريف الإجراء بواسطة CREATE OR REPLACE PROCEDURE، حيث يتم استخدام VARCHAR2 لنوع بيانات النص و NUMBER لنوع بيانات الرقم.

يرجى مراعاة أنه يفضل تجنب استخدام أسماء مبدئية مثل “IN” في أسماء المعاملات لتجنب الالتباس مع الكلمات الاحتياطية في Oracle. يمكنك استخدام أسماء تعبر عن طبيعة المعاملات بشكل أفضل.

المزيد من المعلومات

بالتأكيد، يمكننا توسيع النقاش لتضمين مزيد من المعلومات حول إجراء التخزين الذي تم إنشاؤه وكيفية تنفيذه في Oracle.

في البداية، يجب فهم أن Oracle تتيح العديد من الخيارات لتنفيذ إجراءات التخزين، مثل إضافة معاملات OUT للاسترجاع القيم بعد تنفيذ الإجراء، واستخدام EXCEPTION للتعامل مع الأخطاء. هنا نقدم توسيعًا للإجراء السابق:

sql
CREATE OR REPLACE PROCEDURE INSERTPRODUCTRECORD ( PNAME_IN VARCHAR2, CATEGORY_IN VARCHAR2, PRICE_IN NUMBER, PRODUCT_ID_OUT OUT NUMBER ) AS BEGIN -- إدراج البيانات في الجدول INSERT INTO PRODUCT (PNAME, CATEGORY, PRICE) VALUES (PNAME_IN, CATEGORY_IN, PRICE_IN) RETURNING PRODUCT_ID INTO PRODUCT_ID_OUT; -- الحصول على القيمة المُدرجة COMMIT; -- حفظ التغييرات EXCEPTION WHEN OTHERS THEN ROLLBACK; -- في حالة حدوث أي استثناء، إلغاء التغييرات والتعامل مع الخطأ RAISE; -- إعادة رمي الاستثناء للمتابعة في التعامل معه END INSERTPRODUCTRECORD; /

في هذا المثال، تم إضافة معامل OUT جديد يُسمى PRODUCT_ID_OUT، والذي يُستخدم لاسترجاع قيمة العمود الرئيسي (PRODUCT_ID) بعد إدراج البيانات في الجدول. يتم ذلك باستخدام جملة RETURNING، وهي ميزة قوية في Oracle تتيح لك الحصول على القيم المُدرجة في الجدول.

كما تم إضافة جزء EXCEPTION للتعامل مع الأخطاء. في حالة حدوث أي استثناء، يتم إلغاء التغييرات باستخدام ROLLBACK، ومن ثم يتم رفع الاستثناء مرة أخرى للسماح بالتعامل معه في مكان آخر إذا لزم الأمر.

هذا التعديل يعكس استخدام بعض المفاهيم الهامة في برمجة إجراءات التخزين في Oracle، مما يجعلها أكثر شمولاً وقابلة للتكامل في بيئة قواعد البيانات Oracle.

زر الذهاب إلى الأعلى