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');