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

  • تسجيل الدخول عبر الفيس بوك تسجيل الدخول عبر تويتر Log In with LinkedIn Log In with Google      تسجيل دخول    
  • إنشاء حساب

صورة
- - - - -

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

DATE

9 رد (ردود) على هذا الموضوع

#1 anas_almasri

anas_almasri

    مشترك

  • الأعضــاء
  • 76 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 14 February 2012 - 12:45 AM

انا عندي ملف 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



ارجوا الحل و شكرا على حسن الاستماع
--
Best Regards
Anas Al-masri
DEVELOPER, DBA Oracle Certified Professional 10g OCA ,OCP

#2 Shibeika

Shibeika

    عضو نشط

  • الأعضــاء
  • 240 مشاركة

تاريخ المشاركة 14 February 2012 - 09:03 AM

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

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

بدلا عن
2011-09-20


وشكرا

تم التعديل بواسطة Shibeika, 14 February 2012 - 09:03 AM.


#3 anas_almasri

anas_almasri

    مشترك

  • الأعضــاء
  • 76 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 14 February 2012 - 10:21 AM

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

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



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



table att (att_date date , att_time date);

و شكرا لكم
--
Best Regards
Anas Al-masri
DEVELOPER, DBA Oracle Certified Professional 10g OCA ,OCP

#4 Ahmad.Hasan

Ahmad.Hasan

    مشرف قسم الـ Forms & Reports والمشاريع

  • فريق الإشراف
  • 4,871 مشاركة
  • الاسم الأول:Ahmad
  • اسم العائلة:Hasan
  • البـلـد: Country Flag
  • المنصب الحالي:Oracle HCM Consultant

تاريخ المشاركة 14 February 2012 - 10:56 AM

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

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

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

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

.Oracle E-Business Suite R12 HCM Certified Implementation Specialist

 

.Oracle Fusion Human Capital Management 11g Human Resources Certified Implementation Specialist

 


#5 anas_almasri

anas_almasri

    مشترك

  • الأعضــاء
  • 76 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 14 February 2012 - 11:06 AM

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

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

هل من نصيحة بهذا الخصوص
و ارجوا منك ارفاق الكود الذي عمل معك دون مشاكل و شكرا
--
Best Regards
Anas Al-masri
DEVELOPER, DBA Oracle Certified Professional 10g OCA ,OCP

#6 Ahmad.Hasan

Ahmad.Hasan

    مشرف قسم الـ Forms & Reports والمشاريع

  • فريق الإشراف
  • 4,871 مشاركة
  • الاسم الأول:Ahmad
  • اسم العائلة:Hasan
  • البـلـد: Country Flag
  • المنصب الحالي:Oracle HCM Consultant

تاريخ المشاركة 14 February 2012 - 11:46 AM

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

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

.Oracle E-Business Suite R12 HCM Certified Implementation Specialist

 

.Oracle Fusion Human Capital Management 11g Human Resources Certified Implementation Specialist

 


#7 a_disi

a_disi

    مشترك

  • الأعضــاء
  • 100 مشاركة
  • الاسم الأول:Ahmad
  • اسم العائلة:Al Disi
  • البـلـد: Country Flag
  • الاهتمامات:صيد السمك
    الرحلات البحرية
    التخييم
  • المنصب الحالي:Oracle Applications Specialist and System Analyst

تاريخ المشاركة 14 February 2012 - 11:58 AM

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

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

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


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

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

#8 Shibeika

Shibeika

    عضو نشط

  • الأعضــاء
  • 240 مشاركة

تاريخ المشاركة 14 February 2012 - 01:24 PM

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

تم التعديل بواسطة Shibeika, 14 February 2012 - 01:24 PM.


#9 anas_almasri

anas_almasri

    مشترك

  • الأعضــاء
  • 76 مشاركة
  • البـلـد: Country Flag

تاريخ المشاركة 14 February 2012 - 01:47 PM

اخواني الاعزاء
شكرا لكم لحسن تعاونكم

ارجوا توضيح الفرق بين
H24
HH24
HH

,ومتى استخدام كل منهم
لتعم الفائده على الجميع
--
Best Regards
Anas Al-masri
DEVELOPER, DBA Oracle Certified Professional 10g OCA ,OCP

#10 a_disi

a_disi

    مشترك

  • الأعضــاء
  • 100 مشاركة
  • الاسم الأول:Ahmad
  • اسم العائلة:Al Disi
  • البـلـد: Country Flag
  • الاهتمامات:صيد السمك
    الرحلات البحرية
    التخييم
  • المنصب الحالي:Oracle Applications Specialist and System Analyst

تاريخ المشاركة 14 February 2012 - 02:22 PM

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

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

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

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





موضوعات أخرى ذات صلة بـ DATE