9 Nisan 2010 Cuma

ORA-01476: divisor is equal to zero

Selamlar,

Başlıktan da anlaşıldığı üzere ORA-01476 hatası ile ilgili çok kısa bilgilendirme yazısı yazıyor olacağım.

Divisor is equal to zero hatasının nedenini biliyoruz aslında ve DIV gibi fonksiyonlar kullanıldığı zaman bu hatanın kaybolacağını da. Ancak bu hatayı dbms_stats paketini kullanırken aldığınız zaman durum biraz daha farklı oluyor. Bu hata ile dbms_stats paketini kullanırken ve şema istatistikleri toplamak istediğiniz zaman karşılaşma ihtimaliniz var. 9i ve 10g'de ortayan çıkan bir bug'dan kaynaklandığını eklemem gerekiyor.

Kısaca hatanın oluşum örneğini göstermem gerekirse;

SQL> exec dbms_stats.gather_schema_stats('HR', cascade => TRUE);
BEGIN dbms_stats.gather_schema_stats('HR', cascade => TRUE); END;

*
ERROR at line 1:
ORA-01476: divisor is equal to zero
ORA-06512: at "SYS.DBMS_STATS", line 13591
ORA-06512: at "SYS.DBMS_STATS", line 13937
ORA-06512: at "SYS.DBMS_STATS", line 14015
ORA-06512: at "SYS.DBMS_STATS", line 13974
ORA-06512: at line 1

Çözümü için metalink'te bir döküman mevcut ve ID'si: 464440.1

Kısaca, önerdikleri çözüm ise;

sql> connect / as sysdba
sql> alter system set events '38041 trace name context forever, level 16';

İyi çalışmalar,

Ogan

1 yorum:

Ugur Inal dedi ki...

Merhaba,

Bilhassa performans sorgularında (v$bhlerde ben çokca rasladım) baş ağrıtan bir durumdu benim için. Taaki ilgili bölme işleminin başına nullif(xxx,0) koyana kadar, bu sorun bu durumda ortadan kalkıyor. bilginize.

Takip et: @oganozdogan