بتاريخ: 10 ديسمبر 200520 سنة comment_53828 الأخوة الأعضاء أريد بعد عمل INSERT لجدول معين يقوم بنفس الوقت بعمل INSERT لجدول آخر والعكس كذلك ارجو المشاركة في هذا الموضوع لأنه ذو اهمية تقديم بلاغ
بتاريخ: 10 ديسمبر 200520 سنة comment_53835 TABLE NAME : DEPTFIELDS : DEPT_NO,DEPT_NAMECREATE OR REPLACE TRIGGER INSERT_TRIGGER AFTER INSERT ON SCOTT.DEPT FOR EACH ROW BEGIN IF INSERTING THEN INSERT INTO SCOTT.DEPT_TEMP(:NEW.DEPT_NO,:NEW.DEPT_NAME); END IF; END; / تقديم بلاغ
بتاريخ: 10 ديسمبر 200520 سنة كاتب الموضوع comment_53839 جزاك الله اخي على مشاركتك الفعالة ولكن السؤال يبقى في اني اريد عمل insert لجدول dept كذلك اذا قمت بعمل insert لجدول DEPT_TEMP الذي افترضته(مثلا) انا عرف انك باتقوللي انه اعمل نفس الشي بالنسبة للجدول DEPT_TEMP وهوCREATE OR REPLACE TRIGGER INSERT2_TRIGGERAFTER INSERT ON SCOTT.DEPT_TEMPFOR EACH ROW BEGIN IF INSERTING THENINSERT INTO SCOTT.DEPT(:NEW.DEPT_NO,:NEW.DEPT_NAME);END IF;END; /ولكن قد عملت ذلك ولكن يطلع erorr يفيد بأنه لايمكن ذلك لأنك لو لاحظت معاي بأنه لو قمنا بعمل insert للجدول الأول سوف يقوم بعمل insert للجدول الآخر وبعد ان يقوم بذلك كانه يريد عمل insert مرة اخري للجدول الأول وهو موجود اصلا فيدخل في loop(هنا مربط الفرس) كيف نحل عقدته؟؟؟؟؟؟؟ تقديم بلاغ
بتاريخ: 10 ديسمبر 200520 سنة comment_53847 السلام عليكم ورحمة الله وبركاتهالاخ الكريمبالنسبة الى الاصضافة وبنفس الوقت تريد ان تضيف بجدول اخراذا كان تنفيذ هذه الاضافة عن طريق الفورم يمكنك استخدام تريجر اسمه post-insertهذا التريجر يقوم بتنفيذ امر معين بعد عمل insetلذلك عنما تقوم بعمل insertقم بانشاء procedure في program unitsوضع جملة ال insert ولا تنسى ال commit_forms;استدعي جملة insert في التريجر post-insertارجو ان تكون الفكرة وضحت تقديم بلاغ
بتاريخ: 11 ديسمبر 200520 سنة comment_53928 اخي الكريم اللي فهمته منك ان عندك جدولين واذا اضفت على اي واحد منهم تبي تضيف على الجول الثاني اذا كان هذا المطلوبفتحتاج تنشئ تريجر على الجدولين مثل ماتفضلوا الخوانلكن تحتاج تشييك بسيط فقط قبل الاضافة اذا القيمة موجودة ولا لاAFTER INSERT ON SCOTT.DEPT_TEMPFOR EACH ROW BEGIN select count(*) into v_ifrom scott.deptwhere dept_no=:new.dept_no;if v_i =0 then-- the record is not exist insert itINSERT INTO SCOTT.DEPT(:NEW.DEPT_NO,:NEW.DEPT_NAME);END; end if;اذا جربت هالطريقة ومامشت او انا مافهمت المطلوب علمنيوشكرا تقديم بلاغ
بتاريخ: 11 ديسمبر 200520 سنة كاتب الموضوع comment_53938 شكرا اخي ora_seas لقد عملت ما قلته ولكن يحدث هنا erorr وهو (ora-06512,ora-04088)مع العلم اني لو أوقفت احد الترايجر يشتغل تمام فما السبب في ذلك بارك الله في الجميع تقديم بلاغ
بتاريخ: 11 ديسمبر 200520 سنة comment_53959 اخي الكريمجربت الطريقة وفعلا طلعت خطأوماتقدر تسويها على مستوى التيبل(على حد علمي)لكن تقدر تسوي فيو من كل جدولوتحط التريجر على مستوى الفيولنفرض عندك هالجدولينdeptdept_copyاول خطوة انشئ فيو من كل جدولcreate dept_v as select * from dept;create view dept_copy_v as select * from dept_copy;ثاني خطوة انشئ تريجر على مستوى الفيو من نوع INSTEAD OFعلى الطريقة التاليةCREATE OR REPLACE TRIGGER TRIG_002 INSTEAD OF INSERT ON DEPTV REFERENCING NEW AS NEW OLD AS OLD FOR EACH ROW declare v_no number;BEGIN insert into dept values(:new.deptno,:new.dept_name);select count(*)into v_nofrom dept_copy_vwhere deptno=:new.deptno;if v_no=0 then insert into dept_copy values(:new.deptno,:new.dept_name);end if;END; وننشئ التريجر على الفيو الثانيةCREATE OR REPLACE TRIGGER TRIG_002 INSTEAD OF INSERT ON HR.DEPT_COPY_V REFERENCING NEW AS NEW OLD AS OLD FOR EACH ROW declare v_no number;BEGIN insert into dept_copy values(:new.deptno,:new.dept_name);select count(*)into v_nofrom dept_vwhere deptno=:new.deptno;if v_no=0 then insert into dept values(:new.deptno,:new.dept_name);end if;END;والحين اذا اضفت على اي واحدة من الفيو راح تضيف في الجدولين معاوتقر تفك نفسك وتسوي فيو وحدة وتستخدمها في الاضافةوتكتب عليها تريجر يضيف بالجدوليناتمنى اني افدتكوبانتظار ردكشكرا لك تقديم بلاغ
بتاريخ: 12 ديسمبر 200520 سنة comment_54035 فعلا طريقة الفيووو التي ذكرها الأخ رائعةشكرا جزيلا لك تقديم بلاغ
بتاريخ: 12 ديسمبر 200520 سنة comment_54049 العفو اخوي azaماشاالله على الصورة اللي تحت اسمكلياقتها عالية ماتتعب من النط تحياتي لك تقديم بلاغ
بتاريخ: 12 ديسمبر 200520 سنة كاتب الموضوع comment_54061 اشكرك اخي ORA_SEAS على مشاركتك القيمة هكذا روح التعاون والفكرواكرر شكري لك وكل من ساهم في هذا المنتدى الرائع والله يوفق الجميع تقديم بلاغ
بتاريخ: 12 ديسمبر 200520 سنة كاتب الموضوع comment_54062 اشكرك اخي ORA_SEAS على مشاركتك القيمة هكذا روح التعاون والفكرواكرر شكري لك وكل من ساهم في هذا المنتدى الرائع والله يوفق الجميع تقديم بلاغ
بتاريخ: 12 ديسمبر 200520 سنة comment_54069 العفو اخي masmasوبدوري اقدم الشكر لكل اعضاء المنتدى على مشاركاتهم الرئعة والمفيدة وحبهم للخير وإفادة الآخرين تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.