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

Oracle Regexp para substituir \n,\r e \t por espaço


Não há necessidade de regex. Isso pode ser feito facilmente com os códigos ASCII e o velho e chato TRANSLATE()
select translate(your_column, chr(10)||chr(11)||chr(13), '    ')
from your_table;

Isso substitui nova linha, tabulação e retorno de carro por espaço.

TRANSLATE() é muito mais eficiente que seu equivalente regex. No entanto, se seu coração está determinado a essa abordagem, você deve saber que podemos fazer referência a códigos ASCII em regex. Portanto, esta declaração é a versão regex do acima.
select regexp_replace(your_column,  '([\x0A|\x0B|`\x0D])', ' ')
from your_table;

O ajuste é referenciar o código ASCII em hexadecimal em vez de base 10.