Hmmmm, also bei meiner Funktion klappt sowohl das Aufdröseln als auch das einfügen in eine Temporäre Tabelle als auch das wieder zusammensetzen.

Hier ist meine Funktion (vielleicht hilfts ja):
Code:
Create Or Replace Function YourSchema.SplitStringIntoRows
                 (PARSTRING Varchar(1024),
                  PARSEP Varchar(1) Default ';')
   Returns Table(SPLITELEM Varchar(256))
   Language Sql
   Specific YOURSCHEMA.SPLITSTRR
   Not Deterministic
   Modifies Sql Data
   Called On Null Input
   Set Option Commit = *NONE,
              Dbgview = *Source
              
   Begin
      Declare POSSEP    Integer Default 1;
      Declare PrvPosSep Integer Default 0;
   
      Set ParString = Trim(ParString);        
      
   RepLoop: Repeat Set PrvPosSep = Case When PosSep <> 1 
                                     Then PosSep + 1
                                     Else 1 End;
                If Length(Trim(ParString)) = 0 or ParString = ParSep
                   Then Leave RepLoop;
                End If;                        
                Set PosSep = Locate(ParSep, ParString, PrvPosSep);
                If PosSep = 0 
                   Then Pipe(Trim(Substr(ParString, PrvPosSep)));
                        Leave RepLoop;
                Else Pipe(Trim(Substr(ParString, PrvPosSep, PosSep - PrvPosSep)));     
                End If;
         Until PosSep = 0 End Repeat;     
      Return;   
  End;
... und die folgenden Statements können problemlos ausgeführt werden:
Code:
Declare Global Temporary Table mytable
 ( MyId  Integer,
  MyText  VarChar(4096),
  MyElem  VarChar(256));
  
Insert into mytable  
With Data (Id, Text) as (Values(1, 'AB;CD;E;;FG;H'), 
                               (2, 'A; B; C'), 
                               (3, 'XXX;YY;ZZZZZ;AA'), 
                               (4, ('AAA;D;DD;;BB;DD;EE')))  
Select * 
   from Data, 
        Lateral(Select * from Table(SplitStringIntoRows(Text, ';')) x) c
   Where SplitElem like '%A%';

With Data (Id, Text) as (Values(1, 'AB;CD;E;;FG;H'), 
                               (2, 'A; B; C'), 
                               (3, 'XXX;YY;ZZZZZ;AA'), 
                               (4, ('AAA;D;DD;;BB;DD;EE')))  
Select Id, ListAgg(SplitElem, ';') 
   from Data, 
        Lateral(Select * from Table(SplitStringIntoRows(Text, ';')) x) c
   Group By Id;
Birgitta