Problemas de cast na versão Pg8.4
16/08/2011
0
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
Curtir tópico
+ 0
Responder
Posts
17/08/2011
Anthony Accioly
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,
Responder
Clique aqui para fazer login e interagir na Comunidade :)