Merhabalar arkadaşlar, Sitemizi programlama ile ilgilenen bütün arkadaşlarımızın Türkçe içerik konusunda çektiği sıkıntılar düşünülerek soru/cevap şeklinde bir etkileşimde bulunabilmesi için kurduk. Umuyoruz hepimiz için güzel bir deneyim olur. Hasscript Ekibi

0
"ORA-01843: geçerli bir ay değil" hatası alıyorum?

Açık 2 Cevaplar 1550 Gösterim Veri Tabanı
pl sql developer kullanarak bir select atıyorum date formatı için

SELECT  TO_DATE('04-JUL-15', 'DD-MON-YY')     FROM dual;

ancak "ORA-01843: geçerli bir ay değil" hatası aldım. UAT ortamımızda düzgün çalışırken, PROD ortamımızda çalışmadı nedendir acaba?

2 Cevap

0

3. bir paremetre olarak da dil (language) verdiğimde ancak düzgün select çekebildim.

to_date('25-OCT-16'
                 ,' DD.MM.YYYY','NLS_DATE_LANGUAGE=AMERICAN')

örneğin, buradaki OCT ,yani october ayını algılıyor sanırım.

Güncelleme: Ayrıca bazen de, language ın haricinde ekrana gönderdiğiniz view,fonksiyon,prosedure vs. nin date formatına çok dikkat edin. to_date işlemini ilgili kısımlardada yapmanız gerekebilir.

(2k puan)
düzenledi
0

UAT veritabanı ile PROD veritabanınızın NLS_DATE_FORMAT  parametreleri farklıdır.  

Her iki veritabanında da aşağıdaki sorguyu çekip karşılaştırma yapabilirsiniz.

select * from nls_database_parameters;

2. cevapta bahsi geçen NLS_DATE_LANGUAGE parametresi  NLS_DATE_FORMATI'ı da etkilemektedir. yine NLS_DATE_LANGUAGE'i de kullanabilirsiniz. Fakat  iki farklı veritabanında NLS_DATE_LANGUAGE aynı olup, NLS_DATE_FORMAT farklı olabilir. Bundan dolayı NLS_DATE_FORMAT'ı kullanmak daha mantıklı olacaktır.  

(596 puan)