Hallo,

leider gibt es in SQL erst ab Release V5R3M0 eine Funktion REPLACE, die es ermöglicht Zeichen aus einem String zu entfernen.

PHP-Code:
D MyText          S             50A   inz('ABC XYZ 1234 567890 A')
*----------------------------------------------------------
C/EXEC SQL                                             
C
Set :MyText Replace(:MyText' ''')           
C/End-Exec                                             
                                                       
C     MyText        Dsply 
C                   
Eval         *INLR = *On 
Wenn Du diese Funktionalität vor Release V5R3M0 unbedingt in SQL braucht, hast Du nur die Möglichkeit Dir eine User Defined Function (UDF) zu stricken.

Dabei kann es sich entweder um eine Funktion z.B. in RPG geschrieben, die als UDF registriert wird, oder die direkt in SQL geschrieben ist.

Die folgende Funktion müsste funktionnieren:
PHP-Code:
Create Function MyLib/RmvCharacter                         
 
(InString VarChar(100),RepChar VarChar(1))                
 
returns varchar(100)                                      
 
Language SQL                                              
BEGIN                                                      
Declare OutStr varchar(100);                               
Declare 
StrPos integer;                                    
Set OutStr   InString;                                   
Set StrPos   = -1;                                         
While 
StrPos <> Do                                       
  
Set StrPos  locate(RepCharOutStr1);                
  If       
StrPos 1                                      
       
and StrPos Length(OutStr) - 1                     
  Then Set OutStr 
substr(OutStr1StrPos 1concat   
                    substr
(OutStrStrPos 1,             
                           
Length(OutStr) - StrPos);       
  ElseIf   
StrPos Length(Outstr)                         
  
Then Set OutStr substr(OutStr1StrPos 1);         
  ElseIf   
StrPos 1                                      
  Then Set OutStr 
substr(OutStr2Length(Outstr) - 1); 
  
End If;                                                  
End While;                                                 
Return 
OutStr;                                             
END 
Birgitta