ERROR: unexpected SELECT query in exec_stmt_execsql() - Mailing list pgsql-sql
From | Ismail Kizir |
---|---|
Subject | ERROR: unexpected SELECT query in exec_stmt_execsql() |
Date | |
Msg-id | 001501bf154b$ab9eba20$5500aec3@kaplan Whole thread Raw |
List | pgsql-sql |
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';