Merhabalar,
Özellikle SP içerisinde olan bir kod bloğunun bu hatayı alması,paketin başarılı olarak tamamlanmasını engellemektedir.
Bu yazıda ise,bölen parametrenin “sıfır” gelmesi ihtimaline karşı nasıl bir önlem alabilirizi araştırıyor olacağız..
Öncelikle benzer bir senaryo hazırlıyoruz;
Bir tablo oluşturuyoruz ve içinde sadece isim ve cinsiyet bilgilerini
tutuyoruz.
Daha sonra içine bir kaç veri girdikten sonra erkek ve kadın sayılarını almak üzere bir script ile devam ediyoruz ;
Bu kısımda erkek ve kadınlar için birer temp tablo daha açıp eğer istediğimiz filtre de veri varsa sayısını aldırıp yoksa “NULL” yazdırıyoruz.
3.adımda ise matematiksel işlem yaptırmak istediğimizden tabloda veri varsa almasını eğer NULL ise “sıfır” atayıp bunu değişkenlere eşitleyip bölme işlemini gerçekleştiriyoruz ;
Senaryomuzda hiçbir kadın çalışan olmadığı için erkek/kadın oranını alamayan kod bloğu hata alıp çalışmayı durdurmaktadır. Fakat biz çalışmaya devam etmesini istiyoruz ve bu hatadan kurtulmak için NULLIF() fonksiyonunu kullanıyoruz ;
NULLIF () fonksiyonu içine girilen parametreler birbirine eşitse “NULL” değer döndürür. Son olarak ISNULL(KAF,0) bize “sıfır” değerini döndürdüğünden ve de 2.parametre olarak 0’ı kontrol ettirdiğimizden değer olarak “NULL” döndürerek kod bloğunun çalışmasına devam etmesini sağlamıştır.
NOT: Eğer ilk parametre ile ikinci parametre farklı olsaydı NULLIF() ‘ten ilk parametre çıkacaktı.
Umarım faydalı olmuştur,herkese iyi çalışmalar….