بتاريخ: 15 أكتوبر 200916 سنة comment_172905 السلام عليكماخواني هل هذا الكود صحيح BEGIN DBMS_SCHEDULER.CREATE_JOB( job_name => 'update_active_state', job_type => 'PLSQL_BLOCK', job_action => 'UPDATE worker_tb SET ACTIVE_STATE="غير نشيط" WHERE sysdate= REFRESH_DT+1;', start_date => to_date('15/10/2009 09:03:00','dd/mm/yyyy hh24:mi:ss'), repeat_interval=>'FREQUENCY=minutely', enabled => TRUE); END; هذه وظيفة أريده أن يتحقق منها كل دقيقة active_state هي حالة النشاطREFRESH_DT تاريخ التحديثأريده أن يقوم بالتحقق من حالة النشاط لكل عامل بحيث اذا كان تاريخ اليوم يساوي تاريخ التحديث لكل عامل + يوم واحد ( REFRESH_DT+1 ) يقوم بتحويل حالة النشاط من نشيط الى ( غير نشيط ) كما هو موضح الكود لا يعمل أريد أن أعرف أين هو الخطأ بالضبط وسؤال آخر جزاكم الله كل خير وهو كيف يمكن أن أقوم بالتحكم بحجم ولون الخط ولون الخلفية في رسائل الأوراكل (messages ) ...عاجل جدا وللضرورة ..تحياتي تم تعديل 15 أكتوبر 200916 سنة بواسطة PrisonBreak تقديم بلاغ
بتاريخ: 15 أكتوبر 200916 سنة comment_172916 جرب هذه الــ JOB BEGIN DBMS_SCHEDULER.CREATE_JOB( job_name => 'update_active_state', job_type => 'PLSQL_BLOCK', job_action => 'UPDATE worker_tb SET ACTIVE_STATE='غير نشيط' WHERE sysdate= (To_Date('REFRESH_DT','dd/mm/yyyy')+1);', start_date => to_date('15/10/2009 09:03:00','dd/mm/yyyy hh24:mi:ss'), repeat_interval=>'FREQUENCY=minutely', enabled => TRUE); END; تقديم بلاغ
بتاريخ: 15 أكتوبر 200916 سنة كاتب الموضوع comment_172917 job_action => 'UPDATE worker_tb SET ACTIVE_STATE='غير نشيط' * يوجد خطأ عند سطر 4: ORA-06550: سطر 4 ، عمود 49 : PLS-00103: تم مواجهه الرمز "غير" عند توقع التالي: ) , * & = - + < / > at in is mod remainder not rem <an exponent (**)> <> or != or ~= >= <= <> and or like LIKE2_ LIKE4_ LIKEC_ between || multiset member SUBMULTISET_ المشكلة هي في ' غير نشيط ' تم تعديل 15 أكتوبر 200916 سنة بواسطة PrisonBreak تقديم بلاغ
بتاريخ: 15 أكتوبر 200916 سنة comment_172918 اعتذر عن الخطا البسيط BEGIN DBMS_SCHEDULER.CREATE_JOB( job_name => 'update_active_state', job_type => 'PLSQL_BLOCK', job_action => 'UPDATE worker_tb SET ACTIVE_STATE="غير نشيط" WHERE sysdate= (To_Date('REFRESH_DT','dd/mm/yyyy')+1); start_date => to_date('15/10/2009 09:03:00','dd/mm/yyyy hh24:mi:ss'), repeat_interval=>'FREQUENCY=minutely', enabled => TRUE); END; تقديم بلاغ
بتاريخ: 15 أكتوبر 200916 سنة كاتب الموضوع comment_172919 ERROR: ORA-01756: لم تنته السلسلة المحاطة بعلامة اقتباس بطريقة صحيحة تقديم بلاغ
بتاريخ: 15 أكتوبر 200916 سنة كاتب الموضوع comment_172934 أخي بال هل يمكن عمل أكثر من جوب ,,لأن هذه الجوب هي الثانية وأخاف أن يكون لا ينفع عمل أكثر من جوب في الـ sql لهذا لا تعمل الجوب الثانية تقديم بلاغ
بتاريخ: 15 أكتوبر 200916 سنة comment_172995 السلام عليكم جرب دي كده BEGIN DBMS_SCHEDULER.CREATE_JOB( job_name => 'update_active_state', job_type => 'PLSQL_BLOCK', job_action => 'begin UPDATE worker_tb SET ACTIVE_STATE="غير نشيط" WHERE sysdate like REFRESH_DT+1; end;', start_date => SYSTIMESTAMP, repeat_interval=>'FREQUENCY=minutely ;INTERVAL=1', enabled => TRUE); END; / وسؤال آخر جزاكم الله كل خير وهو كيف يمكن أن أقوم بالتحكم بحجم ولون الخط ولون الخلفية في رسائل الأوراكل (messages ) ... يمكنك ذلك في الalert تغير كل شيء فيه من خصائصهموفق تقديم بلاغ
بتاريخ: 16 أكتوبر 200916 سنة كاتب الموضوع comment_173038 السلام عليكم جرب دي كدهBEGIN DBMS_SCHEDULER.CREATE_JOB( job_name => 'update_active_state', job_type => 'PLSQL_BLOCK', job_action => 'begin UPDATE worker_tb SET ACTIVE_STATE="غير نشيط" WHERE sysdate like REFRESH_DT+1; end;', start_date => SYSTIMESTAMP, repeat_interval=>'FREQUENCY=minutely ;INTERVAL=1', enabled => TRUE); END; / وسؤال آخر جزاكم الله كل خير وهو كيف يمكن أن أقوم بالتحكم بحجم ولون الخط ولون الخلفية في رسائل الأوراكل (messages ) ... يمكنك ذلك في الalert تغير كل شيء فيه من خصائصهموفق للأسف أخي مصطفى لم ينجح الكود شكرا لكم جميعا على المساعدة قمت بحل المشكلة باستخدام جوب أخرى لا يوجد فيها ( refresh_dt+1 )قمت بعمل عمود جديد في الجدول وقمت بتسميته ( Refresh_end) ( تاريخ نهاية التحديث ) وعن طريق الكود جعلت القيمة التي تخزن فيه هي تاريخ التحديث بالاضافة ليوم واحد فقط مبدئياً للتجربةوجعلت التشييك كل دقيقة أيضا مبدئياً للتجربة ..أي أن المستخدم عندما يدخل تاريخ ( 16/10/2009) فان القيمة التي تخزن في العمود هي ( 17/10/2009) وعندما يصبح تاريخ نهاية التحديث أقل من تاريخ اليوم فان الجوب تقوم بتحويل حالة النشاط الى غير نشيط.وكانت الجوب المستخدمة كالتالي :: مع مراعات تغيير الحقول وتغيير بدء عمل الجوبBEGIN DBMS_SCHEDULER.CREATE_JOB( job_name => 'update_table1', job_type => 'PLSQL_BLOCK', job_action => 'begin UPDATE worker_tb SET active_state = active WHERE SYSDATE>REFRESH_END;end;', start_date => to_date('15/10/2009 13:20:00','dd/mm/yyyy hh24:mi:ss'), repeat_interval=>'FREQUENCY=MINUTELY ;INTERVAL=1', enabled => TRUE); END; القيمة الموجودة في عمود active هي غير نشيط وهذه القيمة موجودة على الدوام نظرا لأن كتابة ( غير نشيط ) في الجوب لم تفلح معي فقمت بعمل عمود وتسميته active وجعلت القيمة فيه على الدوام هي ( غير نشيط ) عن طريق الكود وجعلت هذه القيمة لكل العمال بحيث أنه عندما يصبح تاريخ نهاية التحديث أقل من تاريخ اليوم فان حالة النشاط للعامل ( active_state ) حينها ستساوي القيمة الموجودة في عمود ( active ) وهي ( غير نشيط )وهكذا تمت العملية بنجاحالشكر الجزيل لكل من حاول مساعدتيشكرا لكم تم تعديل 16 أكتوبر 200916 سنة بواسطة PrisonBreak تقديم بلاغ
بتاريخ: 16 أكتوبر 200916 سنة كاتب الموضوع comment_173039 وشكرا لك أخي مصطفى على المساعدة الأخرى في رسائل النظام ولكن هناك مشكلة وهي أن حجم الخط لا يتغير فما الحل ..؟ تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.