SELECT de coluna FLOAT não retorna corretamente

08/06/2007

0

Colegas, bom dia.

Estou enfrentando uma situação muito estranha ao executar uma pesquisa no SQL Server, tanto no 2000 como no 2005. Temos uma tabela de cadastro, com um campo do tipo FLOAT, que equivale a um código interno. Quando executo um select neste campo, as respostas que obtenho são:

select CodInt from Cadastro where CodInt = 264345971717545.0
CodInt
----------------------
264345971717545
(1 row(s) affected)


select CodInt from Cadastro where CodInt = 264345971717545
CodInt
----------------------
264345971717545
(1 row(s) affected)


select CodInt from Cadastro where CodInt = 8247415505401535.0

CodInt
----------------------
(0 row(s) affected)


select CodInt from Cadastro where CodInt = 8247415505401535
CodInt
----------------------
8,24741550540154E+15
(1 row(s) affected)


Observem que o primeiro e segundo select utilizam o mesmo valor, com a diferença apenas do .0 no final. O terceiro e quarto select também se diferenciam pelo .0 no final do valor. Porém, o terceiro select não retorna a linha. Será que alguém tem alguma idéia do por quê isso ocorre? Ter o .0 no final não deveria influenciar na pesquisa, já que o 1º select utiliza esta dado.

O problema é que este código existe em várias rotinas do sistema, e em apenas no BD de um cliente específico não retorna os dados.

Infelizmente, eu não posso solicitar a modificação do código do SELECT nem do datatype da coluna, porque o problema é pontual, em apenas um cliente. Eu preciso descobrir o que pode ter acontecido no banco de dados deste cliente, que o diferencia dos outros, onde a rotina não apresenta o problema.

Resumindo, a pergunta de um milhão de dólares é: existe alguma configuração, função, magia, promessa, etc que pode ter sido aplicada ao banco de dados do cliente A e faça com que o select não retorne resultado, já que o mesmo SELECT executa corretamente no BD dos clientes B, C, D, E .... Z?!

Agradeço antecipadamente qualquer ajuda!

Ignez


Ignez_mt

Ignez_mt

Responder

Posts

08/06/2007

Ignez_mt

Colegas,

apenas para tornar a situação mais ´divertida´...

Se eu alterar o valor deste campo para 8247415505401534 (final 4) ou 8247415505401536 (final 6), as duas pesquisas retornam valores corretamente. O problema ocorre específicamente com a chave 8247415505401535 (final 5).

Alguém pode me ajudar?


Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar