Você pode usar o
regexp_replace
função à esquerda apenas os dígitos e letras, assim:update mytable
set myfield = regexp_replace(myfield, '[^\w]+','');
O que significa que tudo o que não for um dígito ou uma letra ou um sublinhado será substituído por nada (isso inclui
-, space, dot, comma
, etc). Se você quiser incluir também o
_
a ser substituído (\w
vai deixá-lo) você pode alterar o regex para [^\w]+|_
. Ou se você quiser ser rigoroso com os caracteres que devem ser removidos, use:
[- ]+
neste caso aqui um traço e um espaço. Também conforme sugerido por Luiz Signorelly você pode usar para substituir todas as ocorrências:
update mytable
set myfield = regexp_replace(myfield, '[^\w]+','','g');