Hi all,
I had the error message in subject when i ran first time the function below.
Can someone explain me what does it mean and what i must do to avoid it?
Thanks in advance.
Regards
Ismail Kizir
CREATE FUNCTION fOdemesiGereken (bpchar, int2, int2,boolean) RETURNS float8
AS '
DECLARE pOkulNo ALIAS FOR $1; -- Okul numarası pYil ALIAS FOR $2; -- Yil pDonem ALIAS FOR $3; -- Dönem
-- Borçlandırılan dönem 1. dnm. ise ve öğrenci krediye başvurmuşsa
borçlandırılmaz pKrdBasvuraniBorclandirma ALIAS FOR $4;
tmpint int2; IkiliOkuyor boolean; Sonuc float8; tmpfloat float8; OgrRec ogrkutuk%ROWTYPE;
BEGIN SELECT * INTO OgrRec from ogrkutuk WHERE okulno = pOkulNo; IF NOT FOUND THEN RAISE EXCEPTION \'Öğrenci
bulunamadı.No : % \', pOkulNo; END IF; -- Kayıt donduran öğrenci o yıl ve dönem için harç ödemez SELECT yil FROM
KayitDonINTO tmpint WHERE okulno = pOkulNo AND yil = pYil
AND donem = pdonem; IF FOUND THEN return 0.0; END IF; -- Öğrenci ikili öğretimde okuyorsa, IF OgrRec.OgrenimTipi = 1
THEN SELECT yil FROM IlkYuzdeOn INTO tmpint WHERE okulno = pOkulNo AND yil =
pYil; -- İlk yüzde ona girdiğinden dolayı normal harç mı ödeyecek? IF NOT FOUND THEN SELECT IkiliHarc FROM
fakdetayINTO sonuc WHERE FBKODU =
OgrRec.FbKodu; IF NOT FOUND THEN RAISE EXCEPTION \' % kodlu fakültenin % yılına ait harç bilgisi
bulunamadı\', OgrRec.FbKodu, pYil; END IF; IkiliOkuyor := TRUE; ELSE IkiliOkuyor := FALSE; SELECT
OrgunHarcFROM fakdetay INTO sonuc WHERE FBKODU =
OgrRec.FbKodu; IF NOT FOUND THEN RAISE EXCEPTION \' % kodlu fakültenin % yılına ait harç bilgisi
bulunamadı\', OgrRec.FbKodu, pYil; END IF; END IF; END IF;
-- Öğrenci daha önce bir üniversite bitirmiş ise iki katı harç öder IF OgrRec.IkinciUniversite THEN Sonuc := Sonuc *
2.0;END IF;
-- Eğer yabancı dilde öğrenim görüyorsa -- İkili öğrenimde 1.5 -- Örgün öğrenimde 2 katı harç öder IF
OgrRec.YabanciDilTHEN IF IkiliOkuyor THEN Sonuc := Sonuc * 1.5; ELSE Sonuc := Sonuc * 2.0; END IF; END
IF;
-- Eğer yabancı uyruklu ise, IF (OgrRec.Uyruk <> 2425) AND (NOT OgrRec.IkiliAnlasma) THEN IF pDonem = 1 THEN IF
IkiliOkuyorTHEN Sonuc := Sonuc * 2.0; -- 2. Öğretimde iki katı ELSE Sonuc := Sonuc * 3.0; -- Örgün
Öğretimdeüç katı END IF; ELSE return 0.0; -- Yabancı uyruklular ikinci dönemde harç ödemez END IF; ELSE
Sonuc:= Sonuc / 2.0; -- Türk uyruklular harcı iki eşit taksitte öder END IF;
-- Normal süresinde bitiremeyenler ilk yıl %50 daha sonra %100 zam öder IF NOT (OgrRec.YElliZamBas ISNULL) THEN IF
pYil= OgrRec.YElliZamBas THEN Sonuc := Sonuc * 1.5; ELSE IF pYil > OgrRec.YElliZamBas THEN Sonuc :=
Sonuc* 2.0; END IF; END IF; END IF;
-- Eğer pKrdBasvuraniBorclandirma parametresi TRUE ise, IF pKrdBasvuraniBorclandirma THEN SELECT yil FROM
KrediBasvuruINTO tempint WHERE OkulNo = pOkulNo AND Yil
= pYil; IF NOT FOUND return Sonuc; ELSE IF pDonem = 1 THEN return 0.0; END IF; return Sonuc *
2; END IF; END IF; return Sonuc;
END;
' LANGUAGE 'plpgsql';