Hallo *all,
ich habe hier eine SQL UDF die nicht das macht was ich erwarte.
Also wollte ich mal den Bagger anwerfen um das zu prüfen. Habe ich allerdings noch nie gemacht, deswegen klappt es auch noch nicht.
Schritt eins:
Schritt zwei:Code:CREATE FUNCTION rptrade/zaehler /*01.11.19 12:05*/ ( DEBITOR dec(08) ) RETURNS dec(05) Language SQL Modifies SQL Data Deterministic Specific zaehler Called on NULL Input Set Option DATFMT = *ISO, DBGVIEW = *SOURCE, DECMPT = *COMMA, TIMFMT = *ISO BEGIN DECLARE RETURNVAL dec (05) DEFAULT 0; DECLARE anzahl decimal(05) DEFAULT 0; DECLARE i_zaehler decimal(08) DEFAULT 0; select debgh(dec(debitor)) into i_zaehler from dat018 fetch first row only; if i_zaehler = 0 then select d020werta into i_zaehler from dat020 where d020key = debitor; end if; if i_zaehler = 0 then select d020werta into i_zaehler from dat020 order by d020werta desc fetch first row only; set i_zaehler = i_zaehler + 1; insert into dat020 (d020key, d020werta) values(debitor, i_zaehler); end if; set returnval = i_zaehler; RETURN RETURNVAL; END
Das Problem ist ja hier schon das ich keinen Parameter mitgeben kann.
Aber vielleicht kann mir ja auch so einer einen Tipp geben.
Die Funktin liefert unter bestimmten Umständen eine 1 zurück das heißt der Rest dürfte dann nicht ausgeführt werden und die ganze Funktion gibt mir eine 1 zurück. Tut sie aber nicht. Ich vermute das diese Zeile oben nicht passt.Code:select debgh(dec(debitor)) into i_zaehler from dat018 fetch first row only; if i_zaehler = 0 then
Für Hinweise dankbar. Benutzen tue ich den Iseries Navigator V6R1M0
GG 4229
![[NEWSboard IBMi Forum]](images/duke/nblogo.gif)



Mit Zitat antworten
Bookmarks