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?
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?
// Comments are closed.
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.
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.