Oracle
 sql >> Datenbank >  >> RDS >> Oracle

So hängen Sie ein Sonderzeichen in Oracle SQL an, wenn eine exakte Übereinstimmung in der Spalte gefunden wird

In Oracle REGEXP , gibt es kein \b Muster, um Wortgrenzen abzugleichen. Eine häufig verwendete Lösung sieht etwa so aus.

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

DEMO

Dies sucht nach dem Wort gold am Anfang der Zeichenfolge, umgeben von einem Leerzeichen auf beiden Seiten, am Ende der Zeichenfolge oder nach einem Nicht-Wort-Zeichen (z. B. ? oder -). \1,\2,\3 stellen die übereinstimmenden Zeichen innerhalb der 1., 2. und 3. Klammer dar.