KM
24-05-18, 13:16
Hallo,
ich stehe bei einer SQL-Funktion vor einem Rätsel. Die Funktion GETFIRMENSPRACHE sieht folgendermaßen aus:
CREATE OR REPLACE FUNCTION DTOBJ/GETFIRMENSPRACHE(
P_FINR DECIMAL(2, 0) )
RETURNS VARCHAR(1)
LANGUAGE SQL
SPECIFIC DTOBJ/GETFIRMENSPRACHE
NOT DETERMINISTIC
READS SQL DATA
CALLED ON NULL INPUT
BEGIN
--Variablen
DECLARE SPRACHE VARCHAR(1) DEFAULT '';
--Firmensprache ermitteln
SELECT FIPSPR
INTO SPRACHE
FROM FIRMSTAM
WHERE FIFINR = P_FINR;
RETURN SPRACHE;
END;
Als Parameter wird also die Firmennummer 2-stellig numerisch übergeben.
Das merkwürdige ist jetzt, dass die Funktion bei manchen Leuten ganz normal funktioniert und somit die jeweilige Firmensprache zurückgibt.
Bei manchen Leuten tritt aber folgender Fehler auf:
Nachrichten-ID . . . . : CPD439C Bewertung . . . . . . : 40
Nachrichtenart . . . . : Diagnose
Sendedatum . . . . . . : 24.05.18 Sendezeit . . . . . . : 14:08:25
Nachricht . . . : Funktion GETFIRMENSPRACHE in Bibliothek *N nicht gefunden.
Ursache . . . . : Funktion GETFIRMENSPRACHE wurde bei der Funktionsauflösung
aufgrund von Ursachencode 3 nicht gefunden. Die Ursachencodes haben folgende
Bedeutung:
1 -- Es wurde keine Funktion mit dem angegebenen Namen gefunden.
2 -- Es wurde eine Funktion mit dem angegebenen Namen in der Bibliothek
gefunden, für die jedoch eine andere Anzahl an Parametern als die
angegebene erforderlich ist.
3 -- Es wurde eine Funktion mit dem angegebenen Namen und der angegebenen
Anzahl an Parametern in der Bibliothek gefunden, aber Parameter 1
hatte eine Datenart, die nicht auf die Datenart des für die Funktion
definierten Parameters hochgestuft werden kann.
Kann mir jemand sagen wo hier das Problem liegt?
Danke,
KM
ich stehe bei einer SQL-Funktion vor einem Rätsel. Die Funktion GETFIRMENSPRACHE sieht folgendermaßen aus:
CREATE OR REPLACE FUNCTION DTOBJ/GETFIRMENSPRACHE(
P_FINR DECIMAL(2, 0) )
RETURNS VARCHAR(1)
LANGUAGE SQL
SPECIFIC DTOBJ/GETFIRMENSPRACHE
NOT DETERMINISTIC
READS SQL DATA
CALLED ON NULL INPUT
BEGIN
--Variablen
DECLARE SPRACHE VARCHAR(1) DEFAULT '';
--Firmensprache ermitteln
SELECT FIPSPR
INTO SPRACHE
FROM FIRMSTAM
WHERE FIFINR = P_FINR;
RETURN SPRACHE;
END;
Als Parameter wird also die Firmennummer 2-stellig numerisch übergeben.
Das merkwürdige ist jetzt, dass die Funktion bei manchen Leuten ganz normal funktioniert und somit die jeweilige Firmensprache zurückgibt.
Bei manchen Leuten tritt aber folgender Fehler auf:
Nachrichten-ID . . . . : CPD439C Bewertung . . . . . . : 40
Nachrichtenart . . . . : Diagnose
Sendedatum . . . . . . : 24.05.18 Sendezeit . . . . . . : 14:08:25
Nachricht . . . : Funktion GETFIRMENSPRACHE in Bibliothek *N nicht gefunden.
Ursache . . . . : Funktion GETFIRMENSPRACHE wurde bei der Funktionsauflösung
aufgrund von Ursachencode 3 nicht gefunden. Die Ursachencodes haben folgende
Bedeutung:
1 -- Es wurde keine Funktion mit dem angegebenen Namen gefunden.
2 -- Es wurde eine Funktion mit dem angegebenen Namen in der Bibliothek
gefunden, für die jedoch eine andere Anzahl an Parametern als die
angegebene erforderlich ist.
3 -- Es wurde eine Funktion mit dem angegebenen Namen und der angegebenen
Anzahl an Parametern in der Bibliothek gefunden, aber Parameter 1
hatte eine Datenart, die nicht auf die Datenart des für die Funktion
definierten Parameters hochgestuft werden kann.
Kann mir jemand sagen wo hier das Problem liegt?
Danke,
KM