Ir ao conteúdo

Posts recomendados

Postado

Olá pessoal, preciso alterar um grupo de informações em Postgresql que é um varchar escrito desta forma "21112/1", preciso remover antes esse /1 do final e depois transformar isso em um "2/11/12".

Tenho mais de 50.000 linhas inseridas neste estilo de informação e preciso de um procedimento que faça essas alterações.

 

Grato pela ajuda.

Postado

Encotrei a solução com expressões regulares.

mas antes precisei tratar os dados, pois eles estavam com campos irregulares, uns com 6 digitos por exemplo: (021112), e outros com 5 por exemplo: (21112)
O procedimento foi:

 

UPDATE tabela
   set coluna = lpad(coluna, 6, '0')
where length(coluna) < 6;

 

Depois apliquei as expressões regulares:


UPDATE tabela set coluna = REGEXP_REPLACE(coluna,
        '([[:digit:]]{0})([[:digit:]]{2})([[:digit:]]{2})([[:digit:]]{0})',
        '\2/\3/');
FROM tabela;

Obtive o resultado desejado 02/11/12

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...