Удвоите символы разделителя ^
и оберните строку в символы ^
разделителя, чтобы у каждого элемента был свой отдельный начальный и конечный разделители, тогда вы можете просто заменить ^Vinoth^
на ^XXX^
и обратить удвоение разделители и обрезки переднего и заднего разделителей:
SQL Fiddle
Настройка схемы Oracle 11g R2 :
SELECT 1 FROM DUAL;
Запрос 1 :
SELECT TRIM(
'^' FROM
REPLACE(
REPLACE(
'^' ||
REPLACE(
'Vinoth^Vinoth Karthick Vinoth^Vinoth^Vinoth',
'^',
'^^'
)
|| '^',
'^Vinoth^',
'^XXX^'
),
'^^',
'^'
)
) AS replaced
FROM DUAL
Результаты :
| REPLACED |
|------------------------------------|
| XXX^Vinoth Karthick Vinoth^XXX^XXX |