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

Comment ajouter un caractère spécial dans Oracle SQL lorsqu'une correspondance exacte est trouvée dans la colonne

Dans Oracle REGEXP , il n'y a pas de \b modèle pour correspondre aux limites des mots. Une solution couramment utilisée ressemble à ceci.

SELECT id,
       REGEXP_REPLACE (msg_info, '(^|\s|\W)(gold)($|\s|\W)', '\1~\2\3', 1,0,'i')
FROM   yourtable;  

DÉMO

Cela recherche le mot or au début de la chaîne, entouré d'un espace de chaque côté, à la fin de la chaîne ou d'un caractère autre qu'un mot (tel que ? ou -). \1,\2,\3 représentent les caractères appariés entre les 1ère, 2ème et 3ème parenthèses.