Quantos dígitos podem ser armazenados por um número no SQL Server 2005?
-
03-07-2019 - |
Pergunta
Eu tenho um número a partir de um banco de dados Oracle de 47306832975095894070,85314746810624532. Quando eu trazê-lo para SQL Server, ele certamente não mostra que muitos dígitos. Ele mostra como 4.73068329750959E + 19, e o campo é definido como FLOAT.
Eu acho que, provavelmente, inclui todos os dígitos significativos, mas estou sendo perguntado se o número pode ser armazenado exatamente como a Oracle tinha. Existe um tipo de outro dados que irá armazenar todos os números? Existe uma maneira no SQL Server 2005 para exibir o número não em exponencial, mas mostram todos os dígitos são armazenados?
Solução
O equivalente do NÚMERO (p, s) do Oracle tipo de dados em SQL Server é o numérica (p, s) tipo de dados. Note-se que os valores padrão para p (precisão) e s (escala) não são os mesmos em ambas as plataformas.
No SQL Server, um flutuador representa um número de ponto flutuante, que é um inteiro diferente, representação aproximada de um número. Em Oracle, o equivalente seria BINARY_DOUBLE .
Outras dicas
Use decimal tipo de dados. decimal (p, s) - p é um valor de precisão, S é um valor de escala
.em vez de flutuar, use Decimal (38,17). Isso deve permitir que você armazene o número com a mesma precisão que você tinha em Oracle.