Mesmo que esse tópico seja antigo é o primeiro no Google, então vou postar um Oracle equivalente a função implementada aqui, usando expressões regulares.
É bastante mais rápido que substituir aninhado() e muito mais limpo.
Para substituir as strings 'a','b','c' por 'd' em uma coluna de string de uma determinada tabela
select regexp_replace(string_col,'a|b|c','d') from given_table
Não é nada mais do que uma expressão regular para vários padrões estáticos com o operador 'ou'.
Cuidado com os caracteres especiais regexp!