ORA-01843: Not a valid month

Posted on 12 İyul 2010. Filed under: Oracle, SQL | Etiketlər: , , |

CREATE TABLE DATE_TEST(
  x date;
);

insert into date_test(x) values(to_date('15-JAN-2010', 'DD-MON-YYYY'));

Əgər to_date ilə çevirmə zamanı ORA-01843: Not a valid month xətası ilə qarşılaşsanız, deməli sizin Oracle serverin ölkə və dil xüsusiyyətləri Amerikan deyil, məsələn Rusiya sistemi ilə qurulmuş ola bilər. Belə olan halda yuxarıdakı insert əmrinin səhv olması normaldır, çünki tarix formatındakı MON ay adının qısa 3 hərfli olduğunu göstərir və sizin serverdə ölkə, dil olaraq Amerika, ingilis təyin edilmədiyinə görə problem yaranır.
Bu problemi aradan qaldırmaq üçün TO_DATE funksiyasının fərqli bir versiyasını istifadə edərək tarix formatında istifadə olunan dili göstərmək lazımdır.

insert into date_test(x) values(to_date('15-JAN-2010', 'DD-MON-YYYY', 'NLS_DATE_LANGUAGE=English'));

Amma daha yaxşı və universal həll yolu isə tarixi DD.MM.YYYY formatında göstərməkdir, bu şəkildə sistemin ölkə və dil xüsusiyyətlərindən asılı olmayaraq dəqiq işləyəcəyinə əmin ola bilərik.

insert into date_test(x) values(to_date('15.01.2010', 'DD.MM.YYYY'));
Advertisements
Tam Yazını Oxu | Make a Comment ( 2 so far )

    Haqqında

    Java ilə obyekt yönlü proqramlaşdırma, Java web proqramlaşdırma, Oracle SQL, PL/SQL proqramlaşdırma, optimallaşdırma

    RSS

    Subscribe Via RSS

    • Subscribe with Bloglines
    • Add your feed to Newsburst from CNET News.com
    • Subscribe in Google Reader
    • Add to My Yahoo!
    • Subscribe in NewsGator Online
    • The latest comments to all posts in RSS

    Meta

Liked it here?
Why not try sites on the blogroll...