HACHIMAN
17-05-06, 16:06
Hallo,
ich hab ein Problem mit einer im interactiven SQL erstellten UDF. Diese UDF soll aus einem 7st gepackten Feld mit dem Aufbau zB 1060517 ein Datumsfeld machen und dieses zurückliefern. Das tuts auch manchmal. Manchmal heißt, das anscheinend dieses Feld immer gefüllt sein muß. Es scheint so zu sein, das die UDF mit einem leeren Feld nichts anfangen kann, denn es kommt folgende Fehlermeldung, wenn das Feld in der Datei leer ist:
1 -- Das externe Programm oder Serviceprogramm hat SQLSTATE 22007
zurückgegeben. Die vom Programm zurückgegebene Textnachricht ist:
SQLP_L2.RES_DATEZeit- oder Zeitmarkenwert ungültig. .
Der Aufruf sieht so aus:
select sm2dat(FELD),FELD2 from LIB/DATEI
sm2dat ist die UDF und sieht so aus:
create function LIB/sm2dat
(sm_date dec(7, 0)) returns date
language sql
BEGIN
declare res_date date;
set res_date=
date('20' concat substr(char(sm_date), 2, 2)
concat '-' concat substr(char(sm_date), 4, 2) concat '-'
concat substr(char(sm_date), 6, 2));
return res_date;
END
Danke schonmal für die Hilfe!
ich hab ein Problem mit einer im interactiven SQL erstellten UDF. Diese UDF soll aus einem 7st gepackten Feld mit dem Aufbau zB 1060517 ein Datumsfeld machen und dieses zurückliefern. Das tuts auch manchmal. Manchmal heißt, das anscheinend dieses Feld immer gefüllt sein muß. Es scheint so zu sein, das die UDF mit einem leeren Feld nichts anfangen kann, denn es kommt folgende Fehlermeldung, wenn das Feld in der Datei leer ist:
1 -- Das externe Programm oder Serviceprogramm hat SQLSTATE 22007
zurückgegeben. Die vom Programm zurückgegebene Textnachricht ist:
SQLP_L2.RES_DATEZeit- oder Zeitmarkenwert ungültig. .
Der Aufruf sieht so aus:
select sm2dat(FELD),FELD2 from LIB/DATEI
sm2dat ist die UDF und sieht so aus:
create function LIB/sm2dat
(sm_date dec(7, 0)) returns date
language sql
BEGIN
declare res_date date;
set res_date=
date('20' concat substr(char(sm_date), 2, 2)
concat '-' concat substr(char(sm_date), 4, 2) concat '-'
concat substr(char(sm_date), 6, 2));
return res_date;
END
Danke schonmal für die Hilfe!