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 <> 0 Do
Set StrPos = locate(RepChar, OutStr, 1);
If StrPos > 1
and StrPos < Length(OutStr) - 1
Then Set OutStr = substr(OutStr, 1, StrPos - 1) concat
substr(OutStr, StrPos + 1,
Length(OutStr) - StrPos);
ElseIf StrPos = Length(Outstr)
Then Set OutStr = substr(OutStr, 1, StrPos - 1);
ElseIf StrPos = 1
Then Set OutStr = substr(OutStr, 2, Length(Outstr) - 1);
End If;
End While;
Return OutStr;
END
Birgitta
Bookmarks