الانتقال إلى المحتوى
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.

حل مشكله الانحراف في التاريخ

Featured Replies

بتاريخ:

السلام عليكم ورحمة الله وبركاته

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

صحيح ولكن بالهجري خطا وسواء كان الفرق بالزيادة او النقصان عن التاريخ الميلادي

-- في حالة الفرق بالنقصان

أي أن التاريخ بالميلادي هو 16/12/2001

والتاريخ بالهجري هو 1/10/1422

ولكن ظهر لدينا في قاعدة البيانات التاريخ الهجري 30/9/1422

أي ناقص التاريخ يوم عن التاريخ الصحيح وهو 1/10/1422

وهذه الحاله تسمى التعويض بالزياده , ولحل هذا الانحراف نقوم بعمل التالي :-

1- نقوم بإطفاء قاعدة البيانات من خلال ال

SVRMGRL>SHUTDOWN IMMEDIATE


2- نقوم بإنشاء ملف في الموقع التالي :

$ORACLE_HOME\OCOMMON\NLS

وإسم الملف

LXECAL.NLT

ونكتب داخل هذا الملف

define calendar 
calendar_name = "arabic hijrah" 

define calendar_deviation 
deviation_data = { 
<"dec-16-2001 ad">:1 
} 
enddefine calendar_deviation 
enddefine calendar 


هنا قمنا بزيادة يوم واحد الى التاريخ الهجري المقابل لتاريخ 16/12/2001

3- نقوم بتنفيذ الامر التالي من خلال ال Command Prompt

ORACLE_HOME\OCOMMON\NLS\LXEGEN$ 


وذلك لتثبيت التعديل الذي قمنا به في التاريخ

ملاحظه مهمه :

لو تم تنفيذ الخطوات السابقة بنجاح فانه سوف يتم إنشاء ملف جديد وبإسم xecalah.nlb

وسيتم إنشاءه في نفس المكان الذي به ملف LXECAL.NLT

4- نقوم الان بتشغيل قاعدة البيانات ونتأكد من أن التاريخ قد تعدل بناء لما عملنا .


لوأردنا زيادة يوم أخر لتاريخ قادم أخر ومع زيادة يوم للتاريخ الحالي :

نفس الخطوات السابقه مع تعديل هنا ولكن يجب مراعاة التاريخ الذي نريد أن نعدل به فلايمكن

تعديل الا تاريخ نهاية الشهر الهجري أي يوم 29 أو 28 من الشهر فقط

define calendar 
calendar_name = "arabic hijrah" 

define calendar_deviation 
deviation_data = { 
<"dec-16-2001 ad">:1
<"jan-13-2002 ad">:1
} 
enddefine calendar_deviation
enddefine calendar 



في حال الزيادة

أي أن التاريخ بالميلادي هو 14/1/2002

والتاريخ بالهجري هو 30/11/1422

ولكن ظهر لدينا في قاعدة البيانات التاريخ الهجري 1/12/1422 أي أن التاريخ زائد بيوم عن

التاريخ الصحيح وهو 30/11/1422 وهذه الحاله تسمى التعويض بالنقصان ولحل هذا الانحراف نفس

الخطوات السابقه مع الاختلاف في هذا السطر

deviation_data = { 
<"jan-14-2002 ad">:11
} 



حيث نقوم بتحديد التاريخ الميلادي الذي يقابل التاريخ الهجري الذي يحتاج الى نقصان يوم
ونضع

رقم 11 لنقصان يوم واحد و12 لنقصان يومين وهكذا .

لو أردنا عمل زيادة يوم ونقصان يوم أخر في شهريين مختلفين نقوم بعمل التالي :

define calendar 
calendar_name = "arabic hijrah" 

define calendar_deviation 
deviation_data = { 
<"dec-16-2001 ad">:1
<"jan-14-2002 ad">:11
} 

enddefine calendar_deviation

enddefine calendar 


انا جربت هذه الطريقه في قاعدة بيانات اوراكل 8i ولا اتوقع انها تعمل مع الاصدارات الاخري

لو احد جرب هذه الطريقه مع اي اصدار اخر وخصوصا الاصدار 9i وعملت معاه ياريت

يخبرنا بنجاحها وشكرا لكم .

عمر باعقيل
كندا - مونتريال
[email protected]

بتاريخ:

معلومات متميزه لا تأتي الا من شخص متميز , الف الف شكر

بتاريخ:

مشكووور اخوي عمر على المعلومات القيمة
وكما قاله اخي خالد: معلومات متميزة لا تأتي الا من شخص متميز



اخوك ابو تركي

بتاريخ:

هذا اقل ما نتوقعه من متميز مثلك اخ عمر
مشكور ووفقك الله

بتاريخ:

من تميز إلى تميز ان شالله : )

أخوك Oracle

بتاريخ:

الف الف شكر يا أستاذ عمر

بتاريخ:

ماشاء الله تبارك الله يعطيك الف عافيه وعلى القوة

بتاريخ:

بارك الله فيك :rolleyes:

  • بعد 3 أسابيع...
بتاريخ:

السلام عليكم ورحمة الله وبركاته،،
كل الشكر الجزيل مني ومن كل مستخدمي الأوراكل
بارك الله فيك
وأعطينا المزيد

  • بعد 2 سنة...
بتاريخ:

ياأخ عمر باعقيل حل لي المشكلة هذة ارجوك
عملت برنامج اجازات
في هذا البرنامج اقوم بإدخل التاريخ بالهجري من جهاز claint أي العميل ولكن عند الرجوع الى القاعدة في السيرفر اجد انه تم حفظها بالتاريخ الميلادي ماهو الحل ارجوك

بتاريخ:

بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته
شكرا لك أخي الكريم عمر على المجهود الطيب ولكن سؤالي هو من كلامك هذا هل أفهم أن قاعدة البيانات تخزن تاريخ هجري وماهي الطريقة لعمل query له إذا كان كلامي صحيح والسلام عليكم ورحمة الله وبركاته

بتاريخ:

أخ عمر
صراحة لي تجربة في موضوع تعديل التاريخ
وقمت بجميع الخطوات الي ذكرتها أو أكثر
فوجدت مشاكل غريبة جدا مثل نهاية التاريخ لشهر هجري تكون 20/09/1426 مثلا والتاريخ
الي بعده يكون واحد وتظهر هذه المشاكل في حالة عندك ازاحات كثيرة على التاريخ
الحاصل بعد بحث طويل وجدت ان هناك BUG مسجل على أوراكل في موضوع التقويم وهناك للمعلومية تقويم صينية و يابانية وليس فقط هجري وكل تجربتي في 8I
نصيحتي لجميع الإخوان حط التقويم الهجري للأوراكل خلف ظهرك واستخدم الطريقة المتبعة في معظم الوزارات الحكومية والبرامج والتطبيقات بإنشاء جدول للتقويم لكل شهر هجري متى يبدء ومتى ينتهي وبهذه الطريقة يمكنك معرفة التاريخ الموافق

وسلامتكم

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

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

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

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

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

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.