Problemas de cast na versão Pg8.4
Galera,
Estou junto a um analista de minha empresa migrando o sistema da versão 8.1 para a versão 8.4 do postgre.
Ao iniciar os testes de compatibilidade, começamos a ter problemas com o cast, ja que na versão anterior era implicito.
Não consigo realizar operações do tipo:
Alguem saberia como posso resolver esse problema?
Desde já agradeço a ajuda.
Estou junto a um analista de minha empresa migrando o sistema da versão 8.1 para a versão 8.4 do postgre.
Ao iniciar os testes de compatibilidade, começamos a ter problemas com o cast, ja que na versão anterior era implicito.
Não consigo realizar operações do tipo:
SELECT 'valor = '::text||123::integer
Alguem saberia como posso resolver esse problema?
Desde já agradeço a ajuda.
Kim Tolentino
Curtidas 0
Respostas
Anthony Accioly
16/08/2011
Kim,
Teve um entusiasta que criou um script para ajudar com o cenário de migração.
http://petereisentraut.blogspot.com/2008/03/readding-implicit-casts-in-postgresql.html
No médio prazo porém, a solução é parar de depender desses casts implícitos. Use a função CAST ao invés disso. Exemplo:
Veja que, nesse caso específico o resultado é o mesmo do que rodar simplesmente
Uma vez que há um CAST implícito para o tipo TEXT.
Dependendo do tamanho da sua aplicação, eu sou a favor de tratar as consultas / procedures ao invés de tentar o script workaround.
Abraços,
Teve um entusiasta que criou um script para ajudar com o cenário de migração.
http://petereisentraut.blogspot.com/2008/03/readding-implicit-casts-in-postgresql.html
No médio prazo porém, a solução é parar de depender desses casts implícitos. Use a função CAST ao invés disso. Exemplo:
SELECT CAST('valor = ' AS TEXT)||CAST(123 as INTEGER)
Veja que, nesse caso específico o resultado é o mesmo do que rodar simplesmente
SELECT 'valor = '||123
Uma vez que há um CAST implícito para o tipo TEXT.
Dependendo do tamanho da sua aplicação, eu sou a favor de tratar as consultas / procedures ao invés de tentar o script workaround.
Abraços,
GOSTEI 0