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

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


bogii

Recommended Posts

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

انا في مشكله واريد من اهل الخبره مساعدتي
عندي 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;      

رابط هذا التعليق
شارك

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

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

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

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   تمت استعادة المحتوى السابق الخاص بك.   مسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

جاري التحميل
×
×
  • أضف...

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

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