الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

مشكلة بالأذندة

مغلق
بدأه MMA_EG_Cairo في 5 سبتمبر 2007 · 1 رد · 777 مشاهدة · في قواعد بيانات Oracle
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

إخواني الكرام ، تحياتي لكم جميعاً ،

أنا أرغب في إدراج سجل من داخل الـ Trigger علي مستوي سطر بنفس الجدول !!!

علي سبيل المثال :

لدي جدول يدعي Emp ، أنا أقوم بإنشاء جدول آخر مثلة Emp_Del كقائمة محزوفات لبيانات الموظف

وفي الزناد الخاص بجدول Emp علي مستوي سطر في حدث After بإدراج السجل في جدول Emp_Del

كما يلي :

Insert Into Emp_Del(Emp_Code,Emp_Name,Del_Date)

Values(:Old.Emp_Code,:Old.Emp_Name,SysDate);

لكن إخواني في هذه الحالة تكون بيانات جدول Emp_Del هي نفس بيانات جدول Emp !!!

لذلك قررت أن أقوم بضم الجدولين ببعضهما بحيث أن يكون جدول ( Emp ) هو جدول للبيانات

الأصلية وبيانات المحزوفات !!!

ولكن لا يجوز إدراج أو حذف أو تعديل الـجدول من داخل الناد ، فيعطي لي الخطأ التالي :

يوجد خطأ عند سطر 1:

ORA-04091: جدول DB.EMP يتغير، قد لا يشعر به الزناد أو الوظيف

ORA-06512: عند "DB.INS_EMP", line 4

ORA-06512: عند "DB.TRG_EMP_AFTER", line 3

ORA-04088: ظهر خطا أثناء تنفيذ الزناد DB.TRG_EMP_AFTER'

أنظر المثال المرفق

وشكراُ للجميع

SQL.rar

لا تخلط ما بين شخصيتي وأسلوبي .. فشخصيتي هي

ما أنا عليه وتحت تصرفي .. وأسلـوبي يعتمد عليـك

أنت وتصرفاتك

ولحظاتي صمت... وصمـت لحظاتي كلام ... كلامه

اشد آلام ... فصمتي أنا عنوان

عصر التكنولوجيا المعلوماتية(مدونتي الخاصة)

My FaceBook

#2

اخي الكريم بكل بساطة ليس عليك إلا إضافة حقل جديد بجدول الـ Emp وسمه "هل الموظف على رأس العمل " ؟

ALTER TABLE EMP
ADD
(ACTIVE NUMBER(1) DEFAULT 1);

وإذا كنت تريد فصل الموظف مع الحفاظ على بياناته قم بتعديل الخاصية ACTIVE إلى 0 ..

هذا الموضوع مغلق.

مواضيع مشابهة