29 Aralık 2020

Oracle Database ORA-01855: ÖÖ/Ö.Ö. veya ÖS/Ö.S. Gerekli Hatası ve Çözümü

Oracle Database ORA-01855: ÖÖ/Ö.Ö. veya ÖS/Ö.S. Gerekli Hatası ve Çözümü

Oracle tabloları üzerinde test çalışması yaparken yeni karşılaştığım bir hatayı ve çözümünü sizlerle paylaşacağım. Java'da yazdığım data maniple testi sırasında bu hatayı almıştım. Oracle Database'de bir veriyi güncellemek istediğimde Java kodu ile yazdığım JUnit testi ile gönderdiğim test kodu aşağıdaki gibi konsolda hata mesajı verdi.

* ORA-01855: ÖÖ/Ö.Ö. veya ÖS/Ö.S. Gerekli
* ORA-01855: AM/A.M. or PM/P.M. Required

Yazdığım SQL cümleciği aslında Oracle TOAD Editörde sorunsuz çalışıyor fakat Java dili ile yazdığım test Script'in de Database Connection yaparak yazdığım için aynı SQL komutunun çalışmadığını ve tarih formatında hata aldığını gördüm.

Oracle Toad Editör'de Çalışan SQL;
UPDATE HR.ISLEMLER IS SET IS.GIRIS_TARIHI = TO_DATE('12/11/2020 20:30:15 PM', 'MM/DD/YYYY HH:MI:SS AM) WHERE PERSONEL_NO IN ('55','56','57','65','70');
COMMIT;

Java'da aynı Update SQL sorgusunu yazarken saniye kısmını ve AM/PM detayını da çıkarıp aynı sorguyu kod üzerinde tekrar yazdığımda test kodunun çalıştığını gözlemledim. Sadece AM/PM kısmını çıkarıp saniye detayı kalsa da olur fakat ben onu da sorgudan çıkardım. Siz de test datası üretmek için Script yazarken buna benzer bir hata alırsanız aşağıdaki yöntemi uygulayabilirsiniz. Ek olarak Java'da SQL sorguları yazarken başında BEGIN ve sonunda END cümleciklerini eklemeyi unutmayınız.

Java JUnit'de Çalışan SQL;
UPDATE HR.ISLEMLER IS SET IS.GIRIS_TARIHI = TO_DATE('12/11/2020 20:30', 'MM/DD/YYYY HH:MI) WHERE PERSONEL_NO IN ('55','56','57','65','70');
COMMIT;

Burak AVCI

Hiç yorum yok:

Yorum Gönder

Makaleye Yorum ve Sorularınızı Bırakabilirsiniz.