Olá,

Observe este pequeno exemplo:

SQL> select '01133335555' original, regexp_replace('01133335555',
'^(\d{3})(\d{4})(\d{4})$', '\1-\2-\3') modificado from dual;

ORIGINAL    MODIFICADO
----------- -------------
01133335555 011-3333-5555

1 linha selecionada.

Creio que isso resolverá seu problema:
regexp_replace(NR_FONE_PRINCIPAL, '^(\d{3})(\d{4})(\d{4})$', '\1-\2-\3')

Tenho um exemplo bem parecido, formatando CPF neste endereço:
http://profissionaloracle.com.br/blogs/braga/2009/07/06/formatando-saida-com-regexp_replace-cpf/

[]s
Braga

Em 1 de junho de 2010 09:37, Flaviano, Wellington (GE Capital) <
wellington.flavi...@ge.com> escreveu:

>
>
> Pessoal, já peço desculpas pela dúvida, mas não manjo de oracle como de
> mssql ... então vamos lá.
>
> Tenho o campo NR_TELEFONE que é preenchido assim: 01133335555 e quero
> transformar ele assim 011-3333-5555 e um simples select
>
> Estou fazendo da seguinte forma: TO_CHAR(MAX(SUBSTR(NR_FONE_PRINCIPAL,1,3))
> + '-' + MAX(SUBSTR(NR_FONE_PRINCIPAL,4,4)) + '-' +
> MAX(SUBSTR(NR_FONE_PRINCIPAL,8,4))) AS NR_FONE_PRINCIPAL
>
> Só que não está funcionando o que estou fazendo de errado?
>
> Valeu.
>
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>  
>


[As partes desta mensagem que não continham texto foram removidas]



------------------------------------

--------------------------------------------------------------------------------------------------------------------------
>Atenção! As mensagens do grupo ORACLE_BR são de acesso público e de inteira 
>responsabilidade de seus remetentes.
Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ 
--------------------------------------------------------------------------------------------------------------------------
>Apostilas » Dicas e Exemplos » Função » Mundo Oracle » Package » Procedure » 
>Scripts » Tutoriais - O GRUPO ORACLE_BR TEM SEU PROPRIO ESPAÇO! VISITE: 
>http://www.oraclebr.com.br/  
------------------------------------------------------------------------------------------------------------------------
 Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/oracle_br/

<*> Para sair deste grupo, envie um e-mail para:
    oracle_br-unsubscr...@yahoogrupos.com.br

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html


Responder a