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?

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top