Array
(
)

SELECT de coluna FLOAT não retorna corretamente

Ignez_mt
   - 08 jun 2007

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
   - 08 jun 2007

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?