kkkkkkkkkkkkkkkkkkkkkkkkkkk Desculpaí..., informação valiosíssima: a versão do banco (devia ter questionado antes de tentar dar a solução).
Expressão regular (regexp_* ...) funciona a partir da versão 10, desculpe. []s Braga Em 1 de junho de 2010 13:50, Flaviano, Wellington (GE Capital) < wellington.flavi...@ge.com> escreveu: > > > Braga. > Executei o mesmo select que voce passou (abaixo) e dá esse erro, disseram > que é por causa da versão do banco, que utilizo o 8g. > > > select '01133335555' original, regexp_replace('01133335555', > > '^(\d{3})(\d{4})(\d{4})$', '\1-\2-\3') modificado from dual > > []'s > > -----Original Message----- > From: oracle_br@yahoogrupos.com.br <oracle_br%40yahoogrupos.com.br>[mailto: > oracle_br@yahoogrupos.com.br <oracle_br%40yahoogrupos.com.br>] On Behalf > Of Marcos Braga > Sent: Tuesday, June 01, 2010 1:48 PM > To: oracle_br@yahoogrupos.com.br <oracle_br%40yahoogrupos.com.br> > Subject: Re: [oracle_br] Função SUBSTR > > O erro reporta um caracter inválido na string. > > Seguinte, o código que passei só vai funcionar quando encontrar campo com > números (há como mudar isso). > > Uma questão para levar em consideração é: os caracteres que tem no campo de > telefone são somente números? > > Gostaria que postasse o código que executou juntamente com o erro, vai > melhorar o entendimento. > > []s > Braga > > Em 1 de junho de 2010 10:58, Flaviano, Wellington (GE Capital) < > wellington.flavi...@ge.com <wellington.flaviano%40ge.com>> escreveu: > > > > > > > Marcos. > > Ao executar o comando aparece o seguinte erro: ORA-00904: > "REGEXP_REPLACE": > > invalid identifier ... o que pode ser? Permissão de acesso? > > > > []'s > > > > -----Original Message----- > > From: oracle_br@yahoogrupos.com.br > > <oracle_br%40yahoogrupos.com.br><oracle_br% > 40yahoogrupos.com.br>[mailto: > > oracle_br@yahoogrupos.com.br <oracle_br%40yahoogrupos.com.br><oracle_br% > 40yahoogrupos.com.br>] On Behalf > > Of Marcos Braga > > Sent: Tuesday, June 01, 2010 10:20 AM > > To: oracle_br@yahoogrupos.com.br <oracle_br%40yahoogrupos.com.br><oracle_br% > 40yahoogrupos.com.br> > > Subject: Re: [oracle_br] Função SUBSTR > > > > 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 > > <wellington.flaviano%40ge.com><wellington.flaviano% > 40ge.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]