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