Oracle
 sql >> Base de données >  >> RDS >> Oracle

Regex capture les premiers mots avant le caractère par la suite - oracle

Vous pouvez utiliser

SELECT
  TRIM(',' FROM REGEXP_REPLACE('TType=SEND|Status=OK|URL=min://j?_a=3&ver=1.1|day=3',
                '=[^|]+($|\|)', ',')) "TType"    
  FROM DUAL

Le REGEXP_REPLACE trouvera et remplacera par une virgule toutes les occurrences d'un =[^|]+($|\|) modèle qui correspond

  • = - un = char
  • [^|]+ - un ou plusieurs caractères autres que |
  • ($|\|) - soit fin de chaîne soit | .

Voir une démo en ligne .