الانتقال إلى المحتوى
View in the app

A better way to browse. Learn more.

مجموعة مستخدمي أوراكل العربية

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

سؤال لأخي Pali.oracle وذوي الخبرة للضرورة القصوى ..

Featured Replies

بتاريخ:

السلام عليكم
الى الذين لا يعلمون عن ماذا أتحدث : باختصار عندي قاعدة بيانات تحتوي على آلاف العمال وعدد كبير من العمال لهم تاريخ نهاية عقد ينتهي عملهم فيه ..
أريد من الأوراكل عمل تفحص يومي لكل عامل له تاريخ نهاية عقد بحيث أن يقوم بتحويل الحالة العملية لجميع العمال الذي لديهم عقد من ( يعمل ) الى ( لا يعمل) عندما يساوي تاريخ نهاية عقدهم تاريخ اليوم

طلبت مساعدة من أخي PALI.ORACLE قبل ذلك وأخبرني بالحل ولكن ليس كاملا وأنا بحثت عن باقي الحل ووجدته ولكن الوظيفة لا تعمل

أطلب من أخي PALI.ORACLE مساعدتي

أخي بال
هل حل مشكلتي يكمن في هذه الأكواد وهل هي صحيحة وتحل مشكلتي أم لا

أولا قمت بانشاء بروسيجر كالتالي

Create Or Replace Procedure CHK_DATE AS CURSOR C IS
SELECT LEAVEDATE
FROM INF; BEGIN FOR REC IN C LOOP
UPDATE INF
SET WORK_STATE_CD = 2
WHERE LEAVEDATE = SYSDATE;
END LOOP;
COMMIT;
End;



حيث أن LEAVEDATE هو تاريخ نهاية العقد ..
INF هو جدول العمال
WORK_STATE_CD هو عمود الحالة العملية والذي يحتوي على خمسة خيارات ( "لا يعمل" هو الثاني من القائمة )
ثانياً قمت بانشاء وظيفة كالتالي

BEGIN -- Job defined entirely by the CREATE JOB procedure.
 DBMS_SCHEDULER.create_job (
   job_name        => 'CHK_DATEE',
   job_type        => 'PLSQL_BLOCK',
   job_action      => 'BEGIN CHK_DATE(''CREATE_PROGRAM (BLOCK)''); END;',
   start_date      => SYSTIMESTAMP,
   repeat_interval => 'freq=hourly; byminute=0',
   end_date        => NULL,
   enabled         => TRUE,
   comments        => 'Job defined entirely by the CREATE JOB procedure.');
END;




أنا قمت بتجربة ذلك وتمت عملية انشاء وظيفة وبروسيجر بنجاح ولكنها لم تعمل وبقيت التواريخ ولم تتم عملية تحويل الحالة العملية للعامل , سأكون شاكر جدا لمن يساعدني
أرجو أن تساعدوني بأقصى سرعة وللضرورة لأن مشروعي شارف على الانتهاء ولم يتبقى لي الا القليل ..

بتاريخ:

السلام عليكم
جرب استخدام هذه الــ JOB :

DECLARE
 X NUMBER;
BEGIN
 SYS.DBMS_JOB.SUBMIT
 ( job	   => X 
  ,what	  => 'Chk_Date;'
  ,next_date => to_date('05/10/2009 17:04:05','dd/mm/yyyy hh24:mi:ss')
  ,interval  => 'TRUNC(SYSDATE+1)'
  ,no_parse  => FALSE
 );
 SYS.DBMS_OUTPUT.PUT_LINE('Job Number is: ' || to_char(x));
COMMIT;
END;
/

تم تعديل بواسطة PALI.ORACLE

بتاريخ:
  • كاتب الموضوع
السلام عليكم
جرب استخدام هذه الــ JOB :

DECLARE
 X NUMBER;
BEGIN
 SYS.DBMS_JOB.SUBMIT
 ( job	   => X 
  ,what	  => 'Chk_Date;'
  ,next_date => to_date('05/10/2009 17:04:05','dd/mm/yyyy hh24:mi:ss')
  ,interval  => 'TRUNC(SYSDATE+1)'
  ,no_parse  => FALSE
 );
 SYS.DBMS_OUTPUT.PUT_LINE('Job Number is: ' || to_char(x));
COMMIT;
END;
/



ما هي الآلية التي سيعمل بها هذا الكود أخي بال ..؟
ومتى سيبدأ ومتى ستتم عملية التشييك ..؟
قمت قبل قليل بتنفيذ الكود ولكن هل يجب علي الانتظار حتى الغد لملاحظة التغيير , اذا كانت الاجابة نعم فهل من طريق لاختباره الآن حتى لا أنتظر للغد حتى أعلم ما هي النتيجة .

انضم إلى المناقشة

يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.

زائر
أضف رد على هذا الموضوع...

برجاء الإنتباه

بإستخدامك للموقع فأنت تتعهد بالموافقة على هذه البنود: سياسة الخصوصية

Account

Navigation

البحث

إعداد إشعارات المتصفح الفورية

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.