Hallo *all,
mir fehlt jetzt nur noch die Konvertierung von hex nach decimal. Finde es auf Anhieb nicht wie der cast aussehen muß. Weil ohne fällt das Teil ab 000A auf die Nase.
Wie kann man eigentlich solche UDFs debuggen?
Ansonsten sieht meine UDF so aus.
Code:
CREATE FUNCTION rptrade/zaehler /*11.10.19 10:51*/
( DEBITOR dec(08) ) RETURNS
CHAR(04)
LANGUAGE SQL MODIFIES SQL DATA ALLOW DEBUG MODE
DISALLOW PARALLEL
BEGIN
DECLARE RETURNVAL CHAR (04) NOT NULL DEFAULT '0000' ;
DECLARE i_zaehler decimal(04) DEFAULT 0;
select d020werta into i_zaehler
from dat020 where d020key = debitor;
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, substr(hex(int(i_zaehler)), 5, 4));
end if;
set returnval = substr(hex(int(i_zaehler)), 5, 4);
RETURN LTRIM(RETURNVAL);
END
Bookmarks