anas_almasri بتاريخ: 13 فبراير 2012 تقديم بلاغ مشاركة بتاريخ: 13 فبراير 2012 انا عندي ملف csv و عندما اجلب التاريخ باستخدام text_io فانه يصبح على النحو التالي08:36:20 2011-09-30 و انا كتبت كود على البي ال لحل لمتابعة المشكلة' declarev_date varchar2(20);v_time varchar2(20);beginexecute immediate 'alter session set nls_date_format=''dd-mm-yyyy''';v_date := '2011-09-20';v_time := '08:36:30';--v_date:=trunc(v_date);--v_time:=TO_date(v_time, 'HH24:MI:SS') ;dbms_output.put_line('v_date: '||v_date||'v_time: '||v_time); begininsert into att(att_date,att_time) values(to_date(v_date,'dd-mm-yyyy'),to_date(v_time,'h24:mi:ss'));commit;exception when others thendbms_output.put_line('sql error: '||sqlerrm);end;exception when others thendbms_output.put_line('sql error1: '||sqlerrm);end;end; و ينتج هذا الخطا: ORA-01861: literal does not match format string ارجوا الحل و شكرا على حسن الاستماع اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
Shibeika بتاريخ: 14 فبراير 2012 تقديم بلاغ مشاركة بتاريخ: 14 فبراير 2012 (معدل) المشكلة بسيطة جدافقطv_date := '20-09-2011'بدلا عن2011-09-20وشكرا تم تعديل 14 فبراير 2012 بواسطة Shibeika اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
anas_almasri بتاريخ: 14 فبراير 2012 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 14 فبراير 2012 المشكلة عندي ان البينات تاتي على شكل 30-09-2011 و ليس على شكل 2011-09-30و انا هنا مضطر لوضع التاريخ على هذه الهيئة لمحاكاة المشكلةو ان الكود السابق فقط لمعرفة اين تكمن المشكلة و ليس هو الكود الفعليارجوا الرد بعد تجريب الكود على قاعدة بينات خاصة بكمبعد انشاء جدول على هذا الشكلcreatetable att (att_date date , att_time date);و شكرا لكم اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
Ahmad.Hasan بتاريخ: 14 فبراير 2012 تقديم بلاغ مشاركة بتاريخ: 14 فبراير 2012 السلام عليكمقمت بتجربة المثال واستخدمت : To_Date(V_Date, 'rrrr-mm-dd') وقام بادخال التاريخ كالتالي:20/09/2011هل هذا ما تريد ؟؟ اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
anas_almasri بتاريخ: 14 فبراير 2012 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 14 فبراير 2012 عدلت الكود على الفورمات الجديد و لكن لم يعملو ارسل الخطأ التاليora-01821: date format not recognizedهل من نصيحة بهذا الخصوصو ارجوا منك ارفاق الكود الذي عمل معك دون مشاكل و شكرا اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
Ahmad.Hasan بتاريخ: 14 فبراير 2012 تقديم بلاغ مشاركة بتاريخ: 14 فبراير 2012 السلام عليكمجرب ادخال التاريخ فقط: Insert Into Att(Att_Date,Att_Time) Values (To_Date(V_Date, 'rrrr-mm-dd'), To_Char(To_Date('08:36:30', 'HH24:MI:SS'), 'HH24:MI:SS')); في هذه الحالة يجب تغيير Data Type لعمود الوقت الى Varchar2 اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
a_disi بتاريخ: 14 فبراير 2012 تقديم بلاغ مشاركة بتاريخ: 14 فبراير 2012 السلام عليكم و رحمة الله و بركاتهأخي الحبيب، المشكلة ليست فقط التاريخ، بل أيضاً في صيغة الوقتيرجى تصحيح التالي : insert into att(att_date,att_time) values (to_date(v_date,[color=#ff0000]'YYYY-MM-DD'[/color]),to_date(v_time,'h[color=#ff0000]H[/color]24:mi:ss')); و لا يوجد داعي لاستخدام " execute immediate 'alter session set nls_date_format=''dd-mm-yyyy'''; "ليصبح الكود كالتالي: declare v_date varchar2(20); v_time varchar2(20); begin v_date := '2011-09-20'; v_time := '08:36:30'; dbms_output.put_line('v_date: '||v_date||' v_time: '||v_time); begin insert into att(att_date,att_time) values (to_date(v_date,'YYYY-MM-DD'),to_date(v_time,'hH24:mi:ss')); commit; exception when others then dbms_output.put_line('sql error: '||sqlerrm); end; exception when others then dbms_output.put_line('sql error1: '||sqlerrm); end; / اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
Shibeika بتاريخ: 14 فبراير 2012 تقديم بلاغ مشاركة بتاريخ: 14 فبراير 2012 (معدل) insert into att(att_date,att_time) values(to_date(v_date,'yyyy-mm-dd'),to_date(v_time,'h24:mi:ss')); تم تعديل 14 فبراير 2012 بواسطة Shibeika اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
anas_almasri بتاريخ: 14 فبراير 2012 كاتب الموضوع تقديم بلاغ مشاركة بتاريخ: 14 فبراير 2012 اخواني الاعزاءشكرا لكم لحسن تعاونكمارجوا توضيح الفرق بينH24HH24HH,ومتى استخدام كل منهملتعم الفائده على الجميع اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
a_disi بتاريخ: 14 فبراير 2012 تقديم بلاغ مشاركة بتاريخ: 14 فبراير 2012 السلام عليكم و رحمة الله و بركاتهأخي الحبيب، يتم استخدامHH: لإظهار الوقت من 1 - 12، و غالبا ما يتم استخدامها مع "AM PM ..." مثل "( 11:25:14 AM )HH24: لإظهار الوقت في صيغة 0 - 24 (23:59)و بحسب علمي أنه لا يوجد في الأوراكل صيغة وقت " H " منفردة، إما " HH24 " أو " HH "بارك الله فيك اقتباس رابط هذا التعليق شارك المزيد من خيارات المشاركة
Recommended Posts
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.