الانتقال إلى المحتوى

مشكلة بال Date ... ملف csv عندما اجلب التاريخ باستخدام text_io


anas_almasri

Recommended Posts

انا عندي ملف csv و عندما اجلب التاريخ باستخدام text_io فانه يصبح على النحو التالي
08:36:20 2011-09-30

و انا كتبت كود على البي ال لحل لمتابعة المشكلة

'
declare
v_date varchar2(20);
v_time varchar2(20);
begin
execute 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);
 
begin
insert 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 then
dbms_output.put_line('sql error: '||sqlerrm);
end;
exception
when others then
dbms_output.put_line('sql error1: '||sqlerrm);
end;
end;


و ينتج هذا الخطا:

ORA-01861: literal does not match format string



ارجوا الحل و شكرا على حسن الاستماع

رابط هذا التعليق
شارك

المشكلة بسيطة جدا

فقط
v_date := '20-09-2011'

بدلا عن
2011-09-20


وشكرا

تم تعديل بواسطة Shibeika
رابط هذا التعليق
شارك

المشكلة عندي ان البينات تاتي على شكل 30-09-2011 و ليس على شكل 2011-09-30

و انا هنا مضطر لوضع التاريخ على هذه الهيئة لمحاكاة المشكلة
و ان الكود السابق فقط لمعرفة اين تكمن المشكلة و ليس هو الكود الفعلي



ارجوا الرد بعد تجريب الكود على قاعدة بينات خاصة بكم
بعد انشاء جدول على هذا الشكل
create



table att (att_date date , att_time date);

و شكرا لكم

رابط هذا التعليق
شارك

السلام عليكم
قمت بتجربة المثال واستخدمت :

To_Date(V_Date, 'rrrr-mm-dd')



وقام بادخال التاريخ كالتالي:
20/09/2011

هل هذا ما تريد ؟؟

رابط هذا التعليق
شارك

عدلت الكود على الفورمات الجديد و لكن لم يعمل

و ارسل الخطأ التالي
ora-01821: date format not recognized

هل من نصيحة بهذا الخصوص
و ارجوا منك ارفاق الكود الذي عمل معك دون مشاكل و شكرا

رابط هذا التعليق
شارك

السلام عليكم
جرب ادخال التاريخ فقط:

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

رابط هذا التعليق
شارك

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

أخي الحبيب، المشكلة ليست فقط التاريخ، بل أيضاً في صيغة الوقت

يرجى تصحيح التالي :


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;
/

رابط هذا التعليق
شارك

insert into att(att_date,att_time) values
(to_date(v_date,'yyyy-mm-dd'),to_date(v_time,'h24:mi:ss'));

تم تعديل بواسطة Shibeika
رابط هذا التعليق
شارك

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

أخي الحبيب، يتم استخدام
HH: لإظهار الوقت من 1 - 12، و غالبا ما يتم استخدامها مع "AM PM ..." مثل "( 11:25:14 AM )
HH24: لإظهار الوقت في صيغة 0 - 24 (23:59)

و بحسب علمي أنه لا يوجد في الأوراكل صيغة وقت " H " منفردة، إما " HH24 " أو " HH "

بارك الله فيك

رابط هذا التعليق
شارك

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

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

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

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   تمت استعادة المحتوى السابق الخاص بك.   مسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

جاري التحميل
×
×
  • أضف...

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

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