No Oracle
REGEXP
, não há \b
padrão para corresponder aos limites das palavras. Uma solução comumente usada se parece com isso. SELECT id,
REGEXP_REPLACE (msg_info, '(^|\s|\W)(gold)($|\s|\W)', '\1~\2\3', 1,0,'i')
FROM yourtable;
DEMO
Isso procura a palavra gold no início da string, cercada por um espaço em ambos os lados, no final da string ou por um caractere que não seja uma palavra (como ? ou -).
\1,\2,\3
representam os caracteres combinados dentro do 1º, 2º e 3º parênteses.