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'));

Make a Comment

Ramin Orucov üçün bir cavab yazın Cavabı ləğv et

2 Cavab to “ORA-01843: Not a valid month”

RSS Feed for Ramin Orucovun Java və Oracle bloqu Comments RSS Feed

Ramin cox maraqli idi, tesekkurler.

Men basqa hell yolu teklif edirem.

Yeni bele bir problem cixsa

session bazinda:
alter session set nls_date_format = ‘DD-MM-YYYY’

eger daimi deyismek isteyirsizse

alter system set nls_date_format = ‘DD-MM-YYYY’ scope=spfile

— Instance restart etdikden sonra daimi olacaq.

spfile ilə Oracle instance səviyyəsində olsa, təbii ki daha yaxşı olar, amma Oracle-ı restart eləmək lazımdır deyə bir az çətin məsələdir.


Where's The Comment Form?

    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...