Oracle hataları

ORA-01861: literal does not match format string

Değer, biçim maskesiyle eşleşmiyor

ORA-01861: literal does not match format string

Bir tarih metni biçim maskesine, maske vermediyseniz oturumun varsayılan tarih biçimine uymuyor. Metni maskeyle karakter karakter karşılaştırın ya da DATE '2026-10-15' kullanın.

ORA-01861 ne demek?

Oracle metni ve maskeyi yan yana okur. Ayraçlar ya da sıra uymazsa ORA-01861 ile durur. Çoğu zaman ortada hiç TO_DATE yokken de görülür: DATE kolonunu düz bir metinle karşılaştırmak Oracle’ın NLS_DATE_FORMAT’ı kullanmasına yol açar; bu da DD-MON-RR olabilir.

ORA-01861 neden olur?

ORA-01861 nasıl çözülür?

  1. Maskeyi metne tam olarak uydurun.
  2. DATE’i asla çıplak metinle karşılaştırmayın: maskeli TO_DATE ya da DATE değeri kullanın.
  3. Oturumun biçimine bakın: SELECT value FROM nls_session_parameters WHERE parameter = 'NLS_DATE_FORMAT'.
  4. Karışık veride hatalı satırları VALIDATE_CONVERSION ile bulun (Oracle 12.2 ve sonrası).

ORA-01861 örneği

Maske metne uymalı:

-- ORA-01861: literal does not match format string
SELECT TO_DATE('2026-10-15', 'DD/MM/YYYY') FROM dual;

-- Çalışır
SELECT TO_DATE('2026-10-15', 'YYYY-MM-DD') FROM dual;

Çıplak metin oturum biçimini kullanır:

-- NLS_DATE_FORMAT DD-MON-RR ise ORA-01861
SELECT * FROM orders WHERE order_date > '2026-10-15';

-- Her yerde çalışır
SELECT * FROM orders WHERE order_date > DATE '2026-10-15';

SQLlightspeed’de

Bir ifade hata verdiğinde SQLlightspeed’in hata paneli, hata kodunu sade bir Türkçe açıklama ve ne yapmanız gerektiğine dair bir öneriyle; Oracle’ın kendi mesajı ve Oracle dokümantasyonuna bağlantıyla birlikte gösterir — bu hata ve sık görülen onlarca başka hata için.

İlgili hatalar

ORA-01843ORA-00932ORA-01722 Tüm Oracle hataları →

Oracle dokümantasyonu: ORA-01861. Oracle, Oracle Corporation’ın tescilli ticari markasıdır. SQLlightspeed’in Oracle ile bir bağlantısı yoktur.