Добавить escape-символ перед указанными c символами [oracle sql] - PullRequest
0 голосов
/ 18 февраля 2020

Я ищу некое регулярное выражение, которое добавит символ \\ в столбец varchar перед определенными символами (например, ", \ ... N символов).

пример: James"Bond\007 -> James\"Bond\\\007

Я могу сделать это с заменой N, но я ищу более элегантное решение, если oracle предоставляет его.

REPLACE(REPLACE(ColumnX, '\', '\\'), '"', '\"')

PS нужно для oracle 12,1 & oracle 12,2

1 Ответ

1 голос
/ 18 февраля 2020

Вы можете использовать обратные ссылки:

select regexp_replace ( 
         'James"Bond\007',
         '("|\\)', -- add all the characters you want to replace
         '\\\1'
       )
from   dual;

REGEXP_REPLACE('JAMES"BOND\007','("|\\)','\\\1')   
James\"Bond\\007   

Обратите внимание, что вам нужно избегать обратной косой черты в регулярном выражении с дополнительной обратной косой чертой sh!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...