Oracle hataları

ORA-00932: inconsistent datatypes

Veri tipleri uyuşmuyor

ORA-00932: inconsistent datatypes: expected X got Y

Aynı tipte olması gereken iki değer farklı tipte. Mesaj, Oracle’ın ne beklediğini ve ne bulduğunu söyler. Bir tarafı TO_DATE, TO_CHAR ya da TO_NUMBER ile açıkça dönüştürün veya ifadeyi düzeltin.

ORA-00932 ne demek?

Oracle bazı tipleri kendiliğinden dönüştürür ama her çifti değil: DATE bir NUMBER ile karşılaştırılamaz, CASE dallarının tipleri de uyumlu olmalıdır. Mesaj iki tarafı da söyler; örneğin expected DATE got NUMBER. CLOB kolonlar, DISTINCT ya da GROUP BY gibi LOB kabul etmeyen yerlerde de bu hatayı verir.

ORA-00932 neden olur?

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

  1. Mesajdaki beklenen ve bulunan tipleri okuyun.
  2. Açıkça dönüştürün: TO_DATE, TO_CHAR ya da TO_NUMBER.
  3. Her CASE dalının aynı tipi döndürmesini sağlayın.
  4. CLOB’ları DBMS_LOB.COMPARE ile karşılaştırın; kısa bir değer yetiyorsa DBMS_LOB.SUBSTR kullanın.

ORA-00932 örneği

CASE dalları uyuşmalı:

-- ORA-00932: inconsistent datatypes: expected CHAR got NUMBER
SELECT CASE WHEN status = 'A' THEN 'aktif' ELSE 0 END FROM customers;

-- Çalışır
SELECT CASE WHEN status = 'A' THEN 'aktif' ELSE '0' END FROM customers;

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-01722ORA-01861ORA-06502 Tüm Oracle hataları →

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