- Este tópico contém 6 respostas, 5 vozes e foi atualizado pela última vez 16 anos, 7 meses atrás por
leo_jf.
-
AutorPosts
-
27 de julho de 2009 às 4:54 pm #88205
leo_jf
ParticipanteOla Srs,
Estou tentando aqui, mas não ta funcionando.
Alguém sabe como consigo, se tiver como, pegar apenas números em uma coluna de caracteres. Ex: Rua nicolau da fonseca, 115.
Eu pegaria apenas o 115.
Tentei com substr, mas não funcionou.
Qq ajuda é bem vinda.
[]s27 de julho de 2009 às 5:01 pm #88206eversonpiza
ParticipanteAcho que com expressão regular vc deve conseguir fazer isso, mas não sou um expert no assunto para te dar um exemplo.
27 de julho de 2009 às 5:04 pm #88207Ishii
ParticipanteOlá,
Esse é mais um caso para o REGEXP (se sua versão for 10g ou superior)
Tente assim
select regexp_substr(coluna, '[[:digit:]]+') from tabela
Mas lembrando se isso for para a tratativa de SPED (e tenho quase certeza que é…) no caso de separar endereços e complementos, de que podem haver muitas exceções tais como:
Rua 1, 125- 2°andar, sala 12
Só isso já daria problema, mas imagine:
Av 23 de maio, s/n – Bloco 2
Se ainda continuar com esses casos me mande uma mensagem pois estava criando uma proc para tratar esses casos mas não tive oportunidade de usar ainda…
[]s Isii
27 de julho de 2009 às 5:04 pm #88208Ishii
ParticipanteOlá,
Esse é mais um caso para o REGEXP (se sua versão for 10g ou superior)
Tente assim
select regexp_substr(coluna, '[[:digit:]]+') from tabela
Mas lembrando se isso for para a tratativa de SPED (e tenho quase certeza que é…) no caso de separar endereços e complementos, de que podem haver muitas exceções tais como:
Rua 1, 125- 2°andar, sala 12
Só isso já daria problema, mas imagine:
Av 23 de maio, s/n – Bloco 2
Se ainda continuar com esses casos me mande uma mensagem pois estava criando uma proc para tratar esses casos mas não tive oportunidade de usar ainda…
[]s Ishii
27 de julho de 2009 às 5:22 pm #88209Rodrigo Mesquita
ParticipanteLeonardo, voce pode tambem pegar o que estiver depois da virgula para evitar problemas em que o nome da rua tiver número.
ex: Select Reverse(Trim(Substr(Reverse(&&Endereco),0,Instr(Upper(Reverse(&&Endereco)), ‘,’) – 1))) “Número”
From Dual;Rodrigo Mesquita
27 de julho de 2009 às 5:48 pm #88211Manoel872
ParticipanteLeonardo,
Uma forma meio que na gambiarra seria isso:
SELECT TRIM(TRANSLATE(UPPER(‘SASA3′),’ABCDEFGHIJKLMNOPQRSTUVWXYZ,.;’,’ ‘)) FROM DUAL
Obs.: Não esquecer das acentuações.
Att,
Manoel
27 de julho de 2009 às 6:15 pm #88216leo_jf
ParticipanteSrs,
Surgiu uma modificação urgente em outra interface e vou ter que resolver.
Mas após o almoço vou testar todas as opções.
obrigado pela atenção.
Ishii..realmente vi aqui na base e tenho esse casos: bloco 2, fundos 03…
Ng merece!!!
Se vc tiver a proc que falou e quiser que eu teste rsrsr pode mandar que é bem vinda.
Obrigado mais uma vez.
Daqui a pouco teste e dou o retorno. -
AutorPosts
- Você deve fazer login para responder a este tópico.