بتاريخ: 18 نوفمبر 200520 سنة comment_51966 السلام عليكماخواني . عندي مشكلة . عند تنفيذ trigger في SQL*Plus يظهر لي الخطأ التاليWarning: Trigger created with compilation errors.وتعبت وانا اعدل في الكود . حتى اني غيرت طريقة الكتابة اكثر من مرةهذا هو التريقر Create or replace trigger audit_emp_valuesAfter insert or delete or update on temployeeFOR EACH ROWDeclareBEGIN if inserting theninsert into audit_emp_tableVALUES(USER,SYSDATE,:OLD.EMP_id,:OLD.EMP_LNAME,:NEW.EMP_LNAME,:OLD.EMP_FNAME,:NEW.EMP_FNAME, :OLD.SALARY,:NEW.SALARY,'i');elsif updating theninsert into audit_emp_tableVALUES(USER,SYSDATE,:OLD.EMP_id,:OLD.EMP_LNAME,:NEW.EMP_LNAME,:OLD.EMP_FNAME,:NEW.EMP_FNAME, :OLD.SALARY,:NEW.SALARY,'u');elsif deleting theninsert into audit_emp_tableVALUES(USER,SYSDATE,:OLD.EMP_id,:OLD.EMP_LNAME,:NEW.EMP_LNAME,:OLD.EMP_FNAME,:NEW.EMP_FNAME, :OLD.SALARY,:NEW.SALARY,'d');end if;end;/ جدول المراقبة هوcreate table audit_emp_table(user_name varchar2(30),timestamp date,id number(15),old_last_name varchar2(30),new_last_name varchar2(30),old_first_name varchar2(30),new_first_name varchar2(30),old_salary number(6),new_salary number(6),type varchar2(10)); اتمنى احصل حل للمشكلة وشكرً تم تعديل 18 نوفمبر 200520 سنة بواسطة asheq تقديم بلاغ
بتاريخ: 19 نوفمبر 200520 سنة comment_52043 السلام عليكماخواني . عندي مشكلة . عند تنفيذ trigger في SQL*Plus يظهر لي الخطأ التاليWarning: Trigger created with compilation errors.وتعبت وانا اعدل في الكود . حتى اني غيرت طريقة الكتابة اكثر من مرةهذا هو التريقرCreate or replace trigger audit_emp_valuesAfter insert or delete or update on temployeeFOR EACH ROWDeclareBEGIN if inserting theninsert into audit_emp_tableVALUES(USER,SYSDATE,:OLD.EMP_id,:OLD.EMP_LNAME,:NEW.EMP_LNAME,:OLD.EMP_FNAME,:NEW.EMP_FNAME, :OLD.SALARY,:NEW.SALARY,'i');elsif updating theninsert into audit_emp_tableVALUES(USER,SYSDATE,:OLD.EMP_id,:OLD.EMP_LNAME,:NEW.EMP_LNAME,:OLD.EMP_FNAME,:NEW.EMP_FNAME, :OLD.SALARY,:NEW.SALARY,'u');elsif deleting theninsert into audit_emp_tableVALUES(USER,SYSDATE,:OLD.EMP_id,:OLD.EMP_LNAME,:NEW.EMP_LNAME,:OLD.EMP_FNAME,:NEW.EMP_FNAME, :OLD.SALARY,:NEW.SALARY,'d');end if;end;/ جدول المراقبة هوcreate table audit_emp_table(user_name varchar2(30),timestamp date,id number(15),old_last_name varchar2(30),new_last_name varchar2(30),old_first_name varchar2(30),new_first_name varchar2(30),old_salary number(6),new_salary number(6),type varchar2(10)); اتمنى احصل حل للمشكلة وشكرً51966[/snapback] انا حالا ما منزل الاوراكل عندي عشان اجرب الكود تاعك بس في شي لفت انتباهي انو انتي ما معرف ولا متغير في DECLARE لذلك اذا ما بتلزمك شيلها وحاول مرة اخرى واذا ما زبط معك اكتب الامر التالي لاظهار ما هو الخطأ واين يقع الخطأ SQL>SHOW ERROR; تقديم بلاغ
بتاريخ: 19 نوفمبر 200520 سنة comment_52073 الأخ / asheqيلاحظ مع امر الاضافة انه لا توجد بيانات من جدول الold ومع امر الالغاء لا توجد بيانات من جدول الnew اليك الامرالذى كتبته بعد اجراء تعديلات عليه .. وتطبيقا على جدول ال emp فى scottCreate or replace trigger audit_emp_valuesAfter insert or delete or update on empFOR EACH ROWDeclareBEGINif inserting theninsert into audit_emp_tableVALUES(USER,SYSDATE,:new.empno,' ',:NEW.eNAME,' ',' ',0,:new.SAL,'i');elsif updating theninsert into audit_emp_tableVALUES(USER,SYSDATE,:OLD.EMPno,:OLD.ENAME,:NEW.ENAME,' ', ' ',:OLD.SAL,:NEW.SAL,'u');elsif deleting theninsert into audit_emp_tableVALUES(USER,SYSDATE,:OLD.EMPno,:OLD.ENAME,' ' ,' ',' ',:OLD.SAL,0,'d');end if;end; تقديم بلاغ
بتاريخ: 20 نوفمبر 200520 سنة كاتب الموضوع comment_52171 الله يعطيك الف عافية Amgad .. وجازك الله الف خيرولاكن عندي استفسارانت كتبت بعض الجمل كـ هذهUSER,SYSDATE,:new.empno,' ',:NEW.eNAME,' ',' ',0,:new.SAL,'i'ماذا تقصد بـ ' ' يعني هل اخليها فاضية ؟يعني مثلاً في عملية deleting . لا توجد لدينا قيم جديده . فـ هل معنى هذا اني اخلي حقول NEW فاضية ؟ عن طريق ' ' ؟ او اكتب null او ماذا ؟وتحياتي لك يا كبير تقديم بلاغ
بتاريخ: 20 نوفمبر 200520 سنة comment_52176 الأخ / asheqعندما بدأت فى كتابة اوامر الInsert التزمت بمواصفات جدول audit_emp_tableوالذى اعددته انت فى مثالك .. وبالتالى ظهرت بعض الحقول لا اهمية لها عند تعاملى مع جدول الempفكان لابد ان اضيف مسافات أو null للحقول التى ليس لدى بيانات لكى اضيفها لهذا السجل ...لايفضل ان تكون الحقول الغير مستخدمه = null ... اجعلها = 'مسافه'عموما بشكل عام يمكنك تعديل جدول audit_emp_table كما تريد .. مع ملاحظه صغيرة وهى مع امر الاضافة لا توجد بيانات من جدول الold ومع امر الالغاء لا توجد بيانات من جدول الnew مع تمنياتي بالتوفيق تم تعديل 20 نوفمبر 200520 سنة بواسطة Amgad تقديم بلاغ
بتاريخ: 21 نوفمبر 200520 سنة كاتب الموضوع comment_52250 وياك يا ربوالله يجزاك الجنه قول آمينوالله يكثر من امثالكتحياتي لك تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.