Hallo zusammen,
beim Aufruf einer SQL Stored Procedure per
"exec SQL CALL WITAAXE0.SP$MUBHBST (:InpMit8)"
in einem RPG-Programm erhalte ich den Fehler "SQLCOD = -000000443".
Die Procedure liefert also aufgrund eines internen Fehlers kein Ergebnis.
Im SQL des iNavigator läuft (dies mit"
CALL WITAAXE0.Cusa_MuB_Hauptbetriebsstaette_TEST ('01040553') ;"
fehlerfrei.
Woran kann dies liegen und wie wird dies verhindert?
SQL Stored Procedure
Code:
create or replace procedure WITAAXE0.Cusa_MuB_Hauptbetriebsstaette_TEST (in AKZ# char(8))
LANGUAGE SQL
READS SQL DATA
SPECIFIC SP$MUBHBST -- EINDEUTIGER 10stelliger Systemname
BEGIN declare #Hauptbetriebsstaette char(4) ;
declare HBST# char(4) ;
select right(AKZ_BST, 4) into #Hauptbetriebsstaette
from enteview.VW_BETRIEBSSTAETTEN
where AKZ_UNTERNEHMEN = AKZ# and BSTART_KNZ = 'HU' ;
set HBST# = #Hauptbetriebsstaette ;
if HBST# <> '0000' then
return 1 ;
else
if HBST# is NULL then
return -1 ;
end if ;
return 0 ;
end if ;
END;
RPGLE
Code:
h DatFmt(*EUR)
h TimFmt(*HMS:)
h CvtOpt(*VARCHAR)
h option(*NOdebugIO)
d InpMit s 12
d HBST# s 4a inz('@@@@')
d HBST#_NI s 4b 0
d InpMit8 s 8a inz('12345678')
d InpMit8_NI s 4b 0
/free
InpMit8 = %subst(InpMit: 1: 8) ;
exec SQL CALL WITAAXE0.SP$MUBHBST (:InpMit8) ;
if SQLCOD = 0 ;
%subst(InpMit:9:4) = HBST# ;
else ;
exsr srSQLerror ;
endIF ;
/end-free
Bookmarks