Ir para conteúdo
Fórum Script Brasil
  • 0

Conversão implícita


LaraC

Pergunta

Caros colegas, estou com o seguinte problema. Tinha uma versão 8.2 do Postgres e passei para 9.3( mas nem precisaria tanto, se tivesse ido para o 8.3 já estaria com este problema). Havia algumas integridades entre campos que em uma tabela o campo estava como int e em outra estava como char. O conteúdo é o mesmo(só numeros), mas por algum motivo foi feito assim. No 8.2 não dá problema algum, pois no momento de criar a integridade, ele faz algo que chamamos de conversão implícita.

Os responsáveis pelo Postgres simplesmente entenderam que da versão 8.3 em diante essa conversão implícita não era mais necessária e então quando vamos aplicar a integridade aparece o erro:

Colunas chave "codigo" e "codigo" são tipos incompatíveis: character e integer.

Isso se dá também quando fazer fazer um join com os campos;

Quando vamos fazer um where e colocamos o numero fora da aspas:

select * from teste where codigo = 1

etc...

Sendo assim, um sistema todo pronto que em vários partes da programação tem comandos com where, join, e etc. não funciona mais. Estou chateada e gostaria de saber se existe alguma solução que não seja entrar no código do programa e sair colocando cast em todos os lugares que este campo é referenciado. Também não posso mudar o tipo do campo no banco de dados.

Sei que está questão da conversão implícita é uma função que é criada no banco, mas não sei como fazer.

Grata!!!!

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

olha, eu já pasei por problemas assim. A minha soluçao aqui, foi que minhas fields de codigo que eu tenho, que não são chaves, eu passei tudo pra varchar.

no seu caso, seu como o codigo é chave, seria melhor aproveitar a deixa e padronizar logo.

Minhas talbelas aqui tem uma field id, bigint, que são as chaves. e uma field codigo varchar.

você pode:

1- passar seus codigos para int

2- passar seu codigos para varchar

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...