Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Como posso substituir colchetes por hífens na função Oracle REGEXP_REPLACE?


Para substituir símbolos, use o TRANSLATE função, é menos intensivo do processador do que as funções de expressão regular:
SQL> SELECT translate ('(<FIO>)', '()[]', '----') replaced FROM dual;

REPLACED
--------
-<FIO>-

As expressões regulares são mais versáteis e podem fazer coisas mais complexas, mas são mais caras. Nesse caso, a substituição de um caractere por outro é feita de forma mais eficiente por uma função especializada. Se você realmente deseja usar expressões regulares, pode usar REGEXP_REPLACE :
SQL> SELECT regexp_replace ('[(<FIO>)]', '[]()[]', '-', 1, 0) reg FROM dual;

REG
---------
--<FIO>--

Atualização:Se você quiser substituir apenas o primeiro símbolo, a tradução não funcionará. Em vez disso, use:
SQL> SELECT regexp_replace ('[(<FIO>)]', '[]()[]', '-', 1, 1) reg FROM dual;

REG
---------
-(<FIO>)]