الانتقال إلى المحتوى
View in the app

A better way to browse. Learn more.

مجموعة مستخدمي أوراكل العربية

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

مشكله بسيطه....لكن صعبه

Featured Replies

بتاريخ:

اخواني في الله السلام عليكم ورحمة الله

انا في مشكله واريد من اهل الخبره مساعدتي
عندي SQL script يحتوي علي الاتي

1- insert into table1(select * from SCHEMA2.TABLE1)
2- insert into table2(select * from SCHEMA2.TABLE2)
3- insert into table3(select * from SCHEMA2.TABLE3)
Commit

المشكله التي تواجهني ان في بعض الاحيان يتم تنفيذ 1 و2 وتفشل 3 وهذا غير مطلوب
المطلوب: انه اذا فشل تنفيذ ايا من هذه الجمل يتم عمل rollback دون تنفيذ ايا من هذه الجمل
فهل توجد طريقه لحل هذه المشكله؟؟؟

أفيدوني أفادكم الله

بتاريخ:

الحل الاسهل عمل commit بعد كل عباره
الحل الاصعب استخدام داله ذات جلسة عمل منفصله autonomouse transaction
مع تمنياتي بالتوفيق

بتاريخ:
  • كاتب الموضوع

شكرا لتجاوبك اخي black & white
ولكن بالنسبه للحل الاول بإضافة commit بعد كل Insert
فهذا غير مطلوب لان المطلوب هو عمل commit فقط في حالة نجاح تنفيذ جميع جمل ال insert>>اما في حالة فشل ايا منهم مطلوب الخروج دون عمل اي commit :D(


ارجو ان تكون المشكله واضحه الان

بتاريخ:

اخي الكريم
ضع التالي
فهذه الطريقة تفحص اذا نعم يقوم بالتخزين والاى يقوم بعمل rollback


 insert into table1(select * from SCHEMA2.TABLE1)
insert into table2(select * from SCHEMA2.TABLE2)
insert into table3(select * from SCHEMA2.TABLE3)

COMMIT;

EXCEPTION
when others then
DECLARE
   server_err               NUMBER         := abs(DBMS_ERROR_CODE);
   server_msg               VARCHAR2(2000) := DBMS_ERROR_TEXT;
   
 BEGIN
rollback;
message('Error during insert: '||to_char(server_err) ||'-'||server_msg);

 END;      

بتاريخ:

جزاك الله خيراً

بتاريخ:
  • كاتب الموضوع

أخي Admin5

شكرا لتعاونك واهتمامك....فعلا استطعت بهذه الطريقه عمل transaction واحد لكل insert commands
جزاك الله خيرا يا اخي

انضم إلى المناقشة

يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.

زائر
أضف رد على هذا الموضوع...

برجاء الإنتباه

بإستخدامك للموقع فأنت تتعهد بالموافقة على هذه البنود: سياسة الخصوصية

Account

Navigation

البحث

إعداد إشعارات المتصفح الفورية

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.