esam_gm بتاريخ: 8 فبراير 2011 تقديم بلاغ مشاركة بتاريخ: 8 فبراير 2011 قمت بعمل trigger ولكن للاسف لا يعمل لانه معتمد علي View ولكن عند استبدال اسم الـ view بجدول يعمل بدون مشاكلفهل لا يجوز التعامل مع لـ view في الـ triggerوهذا هو الـ trigger--------------------------------------------------------------------------------------- CREATE OR REPLACE TRIGGER INV.SS_I_QUN AFTER UPDATE ON INV.SALES_DETAIL REFERENCING NEW AS NEW OLD AS OLD FOR EACH ROW DECLARE n number; p_id_inv NUMBER; BEGIN SELECT id_inv INTO p_id_inv FROM sales_head WHERE id_sales = :NEW.id_sales; SELECT SUM (sum1) INTO n FROM garl_all --------------------------------------هذا عبارة عن view تقوم بحساب الرصيد ,وعند استبدالها باسم جدول تعمل بدون مشاكل WHERE id_item = :NEW.id_item AND id_inv = p_id_inv; insert into test2 (id_item) values (:old.i_qun); END; اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
mustafagamiel بتاريخ: 13 فبراير 2011 تقديم بلاغ مشاركة بتاريخ: 13 فبراير 2011 only use instead of CREATE OR REPLACE TRIGGER INV.SS_I_QUN INSTEAD OF UPDATE ON INV.SALES_DETAIL REFERENCING NEW AS NEW OLD AS OLD FOR EACH ROW DECLARE n number; p_id_inv NUMBER; BEGIN SELECT id_inv INTO p_id_inv FROM sales_head WHERE id_sales = :NEW.id_sales; SELECT SUM (sum1) INTO n FROM garl_all --------------------------------------هذا عبارة عن view تقوم بحساب الرصيد ,وعند استبدالها باسم جدول تعمل بدون مشاكل WHERE id_item = :NEW.id_item AND id_inv = p_id_inv; insert into test2 (id_item) values (:old.i_qun); END; اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
esam_gm بتاريخ: 13 فبراير 2011 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 13 فبراير 2011 لا افهم ما هو الحل ، ارجو التوضيحوالغريب ان هذا التريجر trigger يعمل في insert وهذا هو CREATE OR REPLACE TRIGGER inv.minus_inventory BEFORE INSERT ON inv.sales_detail REFERENCING NEW AS NEW OLD AS OLD FOR EACH ROW DECLARE n NUMBER; p_id_inv NUMBER; BEGIN SELECT id_inv INTO p_id_inv FROM sales_head WHERE id_sales = :NEW.id_sales; SELECT SUM (sum1) INTO n FROM garl_all WHERE id_item = :NEW.id_item AND id_inv = p_id_inv; IF n - (:NEW.i_qun-:NEW.mtb) < 0 THEN raise_application_error ('', msg => 'stock on hand minus'); END IF; END; / اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
mustafagamiel بتاريخ: 13 فبراير 2011 تقديم بلاغ مشاركة بتاريخ: 13 فبراير 2011 في حالة بناء تريجر على view لابد من استخدام in stead of بدلا من before ,after اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
esam_gm بتاريخ: 15 فبراير 2011 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 15 فبراير 2011 الهدف من trigger هو اثناء عمل اي تعديل في جدول (المبيعات مثلا) في الكمية مثلا يقوم بعمل بالبحث عن رصيد هذا الصنف من view اذا كان الرصيد بالسالب فيتم منع ذلك هذا هو الهدف فالرجاء افادتيولسيادتكم جزيل الشكر اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
esam_gm بتاريخ: 19 فبراير 2011 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 19 فبراير 2011 هل احد يستطيع ان يعطيني مثال بحيث يستطيع ان يعمل select من view وهو يقوم بادخال داتا في table بحيث اذا كانت القيمة بالسالب يقوم بالغاء الادخال 1 اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
walid elsayed بتاريخ: 18 أكتوبر 2012 تقديم بلاغ مشاركة بتاريخ: 18 أكتوبر 2012 حضرتك ممكن تعمل جمله يسليكت عاديه لاسترجاع الكميه من الفيو بالنسبه للصنف اللى هتعمل عليه تعديل وهتقوله لو الكميه تساوى صفر ماتعملش تعديل او ماتعمل ادخال اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
Recommended Posts
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.