الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

لماذا هذا الكود لا يعمل

مغلق
بدأه abd l rahman في 12 أغسطس 2006 · 12 رد · 1,936 مشاهدة · في قسم لغة الاستفسارات SQL
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

SELECT last_name, TO_CHAR(hire_date, 'DD-Mon-YYYY')
FROM  employees
WHERE hire_date < TO_DATE('01-Jan-90','DD-Mon-RR');

وهذا هو الخطأ

WHERE hire_date < TO_DATE('01-Jan-90','DD-Mon-RR')
						  *
ERROR at line 3:
ORA-01843: not a valid month
#2

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

select to_char(sysdate , 'MON') from dual;

و عندها سترى كيف يأخذ هذا التنسيق .......

بالتوفيق

#3

السلام عليكم

عندما اخذت كتبت الكود عندي كانت هذه هي النتيجة

TO_CHA

------

اغسطس

فما العمل وجزاك الله خيرا

#4

أخي أنت مضطر إلى كتابة اسم الشهر بالغة العربية ( إلا إذا قمت بتغيير الإعادادت الإقليمية أو NLS_LANG ) أي

select to_date ('أغسطس' , 'MONTH') from dual ;

أو يمكنك القيام بالخطوات التالية :

1- سجل الدخول بأحد الحسابين SYStem أو SYS as sysDBA ..

2- نفذ التعليمة :

alter system set nls_date_language='American' scope=spfile;

3- قم بإيقاف تشغيل القاعدة ثم أعد تشغيلها ( راجع دورة إدارة قواعد الأوراكل في المنتدى ) ..

بعدها يمكنك العودة للعمل بواسطة اسماء الأشهر الإنكليزية :

select to_date('01-AUG-05', 'DD-MON-RR')  from dual;

بالتوفيق

#5

السلام عليكم

دخلت على الsys وادخلت الكود وقال user altered عملت ريستارت وشغلت الكود وجدت الخطأ كما هو فما العمل

#6

هل مازات اسماء الأشهر بالعربية ؟؟؟

#7

لا الان ليست بالعربية

#8

عد إلى تنفيذ :

select to_char(sysdate , 'MON') from dual;

ما هو شكل التنسيق الذي يأخذه ؟؟

#9

TO_CHA

------

أغسطس

مع العلم اني نفذت الكود الذي قلت لي عليه سابقا والويندوز english united states

#10

SELECT last_name, TO_CHAR(hire_date, 'DD-Mon-YYYY')

FROM employees

WHERE hire_date < TO_CHAR(TO_DATE('01/01/90','DD/MM/RR'),'DD-MON-RR');

SELECT last_name, TO_CHAR(hire_date, 'DD-Mon-YYYY')

FROM employees

WHERE hire_date < TO_CHAR(TO_DATE('01/01/90','DD/MM/RR'),'DD-MON-RR');

#11

السلام عليكم اخ mom

هو ده الكلام بس أرجو الشرح

انا كنا سؤالي تغير الى متى استخدم الto_date و to_char

وجزاكم الله خيرا

#12

بسم الله الرحمن الرحيم

على مافهمت انك عايز تعرف امتى بنستخد

to_date

و امتى بنستخدم

to_char

1 - to_date

بنستخدمها عند لما تريد ان تقول للسيرفر ان الداتا اللى بيقراها تاريخ لان الجهاز مش بيعرف انه تاريخ لوحدة

2 - to_char

لما تكون عايز تحول شكل الداتا او نوعها

ازاى

الشكل

select to_char(sysdate,'day -month-rr')

from dual ;

النوع

select empno,ename,sal,nvl(to_char(comm),'no comm') from emp

#13

شكرا على اهتمامك يا mom

الشرح واضح

هذا الموضوع مغلق.

مواضيع مشابهة