hrs بتاريخ: 12 أغسطس 2009 تقديم بلاغ مشاركة بتاريخ: 12 أغسطس 2009 (معدل) السلام على اهل السلام تتذكرون هذا الخطأ يمكن عرفت سببهhttp://www.araboug.org/ib/index.php?showtopic=34724&hl=هو موجود في الصورة المرفقةحيث انني لم احدد الكولمنز فهل اذا لم احدد يعملها حتى لو لم يتغير ولا لا اخ عبده انا حاطة الشرط اف ابديتيج تم تعديل 12 أغسطس 2009 بواسطة hrs اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
abdu1_far بتاريخ: 12 أغسطس 2009 تقديم بلاغ مشاركة بتاريخ: 12 أغسطس 2009 طيب عشان نقدر نساعد بجد بما انك عايز الحل ضروري ، ياريت تبعت الاسكريبت بتاع الجدول وان شاء الله نقدر نساعدك اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
hrs بتاريخ: 12 أغسطس 2009 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 12 أغسطس 2009 ارفقت الصورة بنجاح اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
abdu1_far بتاريخ: 12 أغسطس 2009 تقديم بلاغ مشاركة بتاريخ: 12 أغسطس 2009 طيب ممكن تبعتي التيرجر كامل ، يعني بالهيدر بتاعه وكل حاجة وياريت الاستراكشر بتاع الجدول اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
hrs بتاريخ: 16 أغسطس 2009 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 16 أغسطس 2009 triggerCREATE OR REPLACE TRIGGER "BKSDBA"."KEXPBOK_AUD" AFTER INSERT OR DELETE OR UPDATE ON BKSDBA.KEXPBOKT REFERENCING NEW AS NEW OLD AS OLD FOR EACH ROW declaretrm varchar2(50);ip varchar2(50);Beginselect UserEnv('TERMINAL'), Trim(Sys_Context('USERENV','IP_ADDRESS')) into trm , ip from dual; If INSERTING Then Insert Into Bks_KExpBokT (Operation,UserName,Terminal,IPAddress,Timestamp,Old_ExpCde,New_ExpCde, Old_ExpBok,New_ExpBok,Old_ExpDat,New_ExpDat,Old_ExpQty,New_ExpQty,Old_ExpLoc, New_ExpLoc,Old_ExpOrdTyp,New_ExpOrdTyp,Old_ExpEmp,New_ExpEmp,Old_ExpApr, New_ExpApr,Old_ExpAprDat,New_ExpAprDat,Old_ExpQtyRmn,New_ExpQtyRmn,Old_ExpTrfSts, New_ExpTrfSts,Old_ExpQtyRtn,New_ExpQtyRtn) Values ('I',User,trm,ip, SysDate, :Old.ExpCde, :New.ExpCde, :Old.ExpBok,:New.ExpBok,:Old.ExpDat,:New.ExpDat,:Old.ExpQty, :New.ExpQty,:Old.ExpLoc,:New.ExpLoc,:Old.ExpOrdTyp,:New.ExpOrdTyp, :Old.ExpEmp,:New.ExpEmp,:Old.ExpApr,:New.ExpApr,:Old.ExpAprDat, :New.ExpAprDat,:Old.ExpQtyRmn,:New.ExpQtyRmn,:Old.ExpTrfSts,:New.ExpTrfSts, :Old.ExpQtyRtn,:New.ExpQtyRtn ); ELSIF UPDATING THEN Insert Into Bks_KExpBokT (Operation,UserName,Terminal,IPAddress,Timestamp,Old_ExpCde,New_ExpCde, Old_ExpBok,New_ExpBok,Old_ExpDat,New_ExpDat,Old_ExpQty,New_ExpQty,Old_ExpLoc, New_ExpLoc,Old_ExpOrdTyp,New_ExpOrdTyp,Old_ExpEmp,New_ExpEmp,Old_ExpApr, New_ExpApr,Old_ExpAprDat,New_ExpAprDat,Old_ExpQtyRmn,New_ExpQtyRmn,Old_ExpTrfSts, New_ExpTrfSts,Old_ExpQtyRtn,New_ExpQtyRtn) Values ('U',User,trm,ip, SysDate, :Old.ExpCde, :New.ExpCde, :Old.ExpBok,:New.ExpBok,:Old.ExpDat,:New.ExpDat,:Old.ExpQty, :New.ExpQty,:Old.ExpLoc,:New.ExpLoc,:Old.ExpOrdTyp,:New.ExpOrdTyp, :Old.ExpEmp,:New.ExpEmp,:Old.ExpApr,:New.ExpApr,:Old.ExpAprDat, :New.ExpAprDat,:Old.ExpQtyRmn,:New.ExpQtyRmn,:Old.ExpTrfSts,:New.ExpTrfSts, :Old.ExpQtyRtn,:New.ExpQtyRtn ); ELSIF DELETING THEN Insert Into Bks_KExpBokT (Operation,UserName,Terminal,IPAddress,Timestamp,Old_ExpCde,New_ExpCde, Old_ExpBok,New_ExpBok,Old_ExpDat,New_ExpDat,Old_ExpQty,New_ExpQty,Old_ExpLoc, New_ExpLoc,Old_ExpOrdTyp,New_ExpOrdTyp,Old_ExpEmp,New_ExpEmp,Old_ExpApr, New_ExpApr,Old_ExpAprDat,New_ExpAprDat,Old_ExpQtyRmn,New_ExpQtyRmn,Old_ExpTrfSts, New_ExpTrfSts,Old_ExpQtyRtn,New_ExpQtyRtn) Values ('D',User,trm,ip, SysDate, :Old.ExpCde, :New.ExpCde, :Old.ExpBok,:New.ExpBok,:Old.ExpDat,:New.ExpDat,:Old.ExpQty, :New.ExpQty,:Old.ExpLoc,:New.ExpLoc,:Old.ExpOrdTyp,:New.ExpOrdTyp, :Old.ExpEmp,:New.ExpEmp,:Old.ExpApr,:New.ExpApr,:Old.ExpAprDat, :New.ExpAprDat,:Old.ExpQtyRmn,:New.ExpQtyRmn,:Old.ExpTrfSts,:New.ExpTrfSts, :Old.ExpQtyRtn,:New.ExpQtyRtn ); End If;End;-------------------------------------------------------------------------------------TABLEcreate table BKSDBA.KEXPBOKT( EXPCDE VARCHAR2(6) not null, EXPBOK VARCHAR2(13) not null, EXPDAT DATE not null, EXPQTY NUMBER(5) not null, EXPQTYRMN NUMBER(5) not null, EXPLOC VARCHAR2(1) not null, EXPORDTYP VARCHAR2(2) not null, EXPEMP CHAR(9), EXPAPR VARCHAR2(1), EXPAPRDAT DATE, EXPTRFSTS VARCHAR2(1), EXPQTYRTN NUMBER(5), EXPCRSINL VARCHAR2(3), EXPCRSNBR VARCHAR2(3))tablespace BKSTBS pctfree 10 initrans 1 maxtrans 255 storage ( initial 5M minextents 1 maxextents unlimited );-- Create/Recreate primary, unique and foreign key constraints alter table BKSDBA.KEXPBOKT add constraint PK_EXPCDE_BOK primary key (EXPCDE, EXPBOK) using index tablespace BKSNDX pctfree 10 initrans 2 maxtrans 255 storage ( initial 5M minextents 1 maxextents unlimited );alter table BKSDBA.KEXPBOKT add constraint EXPCRS_FK foreign key (EXPBOK, EXPCRSINL, EXPCRSNBR) references BKSDBA.KCRSBOKT (CRSBOK, CRSINL, CRSNBR);alter table BKSDBA.KEXPBOKT add constraint FK_EXPORDTYP foreign key (EXPORDTYP) references BKSDBA.KORDTYPCDET (ORDTYPCDE);alter table BKSDBA.KEXPBOKT add constraint FK_SHLFDTA_BOKBSC foreign key (EXPBOK) references BKSDBA.KBOKBSCT (BOKCDE);-- Create/Recreate indexes create index BKSDBA.IDX$$_4A750003 on BKSDBA.KEXPBOKT (EXPBOK, EXPLOC, EXPORDTYP) tablespace BKSTBS pctfree 10 initrans 2 maxtrans 255 storage ( initial 64K minextents 1 maxextents unlimited );-- Grant/Revoke object privileges grant select on BKSDBA.KEXPBOKT to BKSVIEW_ROLE; اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
hrs بتاريخ: 16 أغسطس 2009 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 16 أغسطس 2009 (معدل) triggerCREATE OR REPLACE TRIGGER "BKSDBA"."KEXPBOK_AUD" AFTER INSERT OR DELETE OR UPDATE ON BKSDBA.KEXPBOKT REFERENCING NEW AS NEW OLD AS OLD FOR EACH ROW declaretrm varchar2(50);ip varchar2(50); يعني هل صح اني اقول في الداتا بيز تريجر UPDATE ON BKSDBA.KEXPBOKT لكي اعمل تريسنغ على كل الكولمنز ولا لازم اذكر كل الكولمنز تم تعديل 16 أغسطس 2009 بواسطة hrs اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
abdu1_far بتاريخ: 16 أغسطس 2009 تقديم بلاغ مشاركة بتاريخ: 16 أغسطس 2009 لا الهيدر صح يافندمكده معناه ان لو حصل اي انسرت او حذف او تعديل لأي كولم اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
abdu1_far بتاريخ: 16 أغسطس 2009 تقديم بلاغ مشاركة بتاريخ: 16 أغسطس 2009 لحد الان انا مش شايف اي سبب منطقي ، انه يضيف لوحده هو هيضيف بمجرد ما حضرتك تعملي أي ترانزكشن على الجدول سواء إذا كان حذف واضافة اوتعديل لكن انه يشتغل لوحده ده غريبة اوي ومش لاقي لها اي سبب منطقيثانيا انا بس عند تحفظ على طريقة الكود ، يعني حضرتك بتكرري جملة الانسرت اكتر من مرة بنفس القيم ، الحاجة الوحيدة المتغيرة هي الحدث ، يعني انسرت I ، ابديت U ، حذف Dيبقى شكل الكود كده CREATE OR REPLACE TRIGGER "BKSDBA"."KEXPBOK_AUD" AFTER INSERT OR DELETE OR UPDATE ON bksdba.kexpbokt REFERENCING NEW AS NEW OLD AS OLD FOR EACH ROW DECLARE trm VARCHAR2 (50); ip VARCHAR2 (50); v_operator VARCHAR2 (1); BEGIN SELECT USERENV ('TERMINAL'), TRIM (SYS_CONTEXT ('USERENV', 'IP_ADDRESS')) INTO trm, ip FROM DUAL; IF INSERTING THEN v_operator := 'I'; ELSIF UPDATING THEN v_operator := 'U'; ELSE v_operator := 'D'; END IF; INSERT INTO bks_kexpbokt (operation, username, terminal, ipaddress, TIMESTAMP, old_expcde, new_expcde, old_expbok, new_expbok, old_expdat, new_expdat, old_expqty, new_expqty, old_exploc, new_exploc, old_expordtyp, new_expordtyp, old_expemp, new_expemp, old_expapr, new_expapr, old_expaprdat, new_expaprdat, old_expqtyrmn, new_expqtyrmn, old_exptrfsts, new_exptrfsts, old_expqtyrtn, new_expqtyrtn ) VALUES (v_operator, USER, trm, ip, SYSDATE, :OLD.expcde, :NEW.expcde, :OLD.expbok, :NEW.expbok, :OLD.expdat, :NEW.expdat, :OLD.expqty, :NEW.expqty, :OLD.exploc, :NEW.exploc, :OLD.expordtyp, :NEW.expordtyp, :OLD.expemp, :NEW.expemp, :OLD.expapr, :NEW.expapr, :OLD.expaprdat, :NEW.expaprdat, :OLD.expqtyrmn, :NEW.expqtyrmn, :OLD.exptrfsts, :NEW.exptrfsts, :OLD.expqtyrtn, :NEW.expqtyrtn ); END; سؤال اخير ... انت متأكده انك الوحيدة اللي شغاله على الجدول ده ؟؟!!! اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
hrs بتاريخ: 17 أغسطس 2009 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 17 أغسطس 2009 تسلم اخ عبدو .. فعلا طريقتك احسن بجرب احطها .. ماأدري كيف راحت عن بالي ..واش المغزى من السؤال لأني مافهمتش قصدك.... اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
abdu1_far بتاريخ: 18 أغسطس 2009 تقديم بلاغ مشاركة بتاريخ: 18 أغسطس 2009 لان ممكن يكون حد تاني (يوسر) أو مبرمج تاني ، شغال على نفس الجدول وعشان كده التيرجر بيتفير ويسجل ريكورد في الجدول اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
سارة سعيد بتاريخ: 24 أغسطس 2009 تقديم بلاغ مشاركة بتاريخ: 24 أغسطس 2009 EUROSOFT يوروسوفت لتكنولوجيا المعلومات ORACLE تعلن عن الدورات الرمضانية خصم على جميع الدورات المقدمة فى اوراكل 20% يبدء الحجز من 23/8/2009 وحتى 12/9/2009للحجز اتصل على 33367306 / 0105014683 / 0173964788 ORACLE Developer 10gORCALE SQL 10 gORCALE PL 10 gORCALE Forms 10 gORCALE Reports 10 gProject دبلومه يوروسوفتORACLEORACLE SQL 10g - ORACLE PL/sql 10gJAVAObject Oriented ProgrammingJ2SE - J2EE - Servlet - JSP - JDBCنظرة عامة على EJB – hibernate – Ajax – XML –نظرة عامة على DREAMWEVER oracle DBA oracle SQL 10goracle workshop 1 oracle workshop 2 اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
Recommended Posts
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.