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

Bir cavab yazın

Sistemə daxil olmaq üçün məlumatlarınızı daxil edin və ya ikonlardan birinə tıklayın:

WordPress.com Loqosu

WordPress.com hesabınızdan istifadə edərək şərh edirsinz. Çıxış / Dəyişdir )

Twitter rəsmi

Twitter hesabınızdan istifadə edərək şərh edirsinz. Çıxış / Dəyişdir )

Facebook fotosu

Facebook hesabınızdan istifadə edərək şərh edirsinz. Çıxış / Dəyişdir )

Google+ foto

Google+ hesabınızdan istifadə edərək şərh edirsinz. Çıxış / Dəyişdir )

%s qoşulma

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

%d bloqqer bunu bəyənir: