Oracle hataları

ORA-01476: divisor is equal to zero

Sıfıra bölme

ORA-01476: divisor is equal to zero

Bir ifade sıfıra böldü. Bölmeyi NULLIF ile koruyun; böylece sıfır bölen hata yerine NULL verir.

ORA-01476 ne demek?

Oracle, bir NUMBER ifadesinin böleni sıfır olduğunda ORA-01476 verir ve milyonlarca satırdan yalnızca biri neden olsa bile ifadenin tamamı başarısız olur. Bir raporun aylarca çalışıp veriye ilk sıfır girdiği gün düşmesinin nedeni budur.

ORA-01476 neden olur?

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

  1. NULLIF(bolen, 0) kullanın: NULL’a bölmek NULL verir.
  2. Sabit bir sonuç gerekiyorsa sarın: NVL(a / NULLIF(b, 0), 0).
  3. Açık yazmayı tercih ederseniz CASE WHEN b <> 0 THEN a / b END kullanın.
  4. Satırları WHERE b = 0 ile bulun ve sıfırın geçerli bir değer olup olmadığına bakın.

ORA-01476 örneği

NULLIF sıfırı NULL’a çevirir:

-- ORA-01476: divisor is equal to zero
SELECT total / quantity FROM order_lines;

-- Çalışır
SELECT total / NULLIF(quantity, 0) FROM order_lines;

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

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