Pregunta

Tengo un número de una base de datos Oracle de 47306832975095894070.85314746810624532. Cuando lo traigo a SQL Server, ciertamente no muestra tantos dígitos. Se muestra como 4.73068329750959E + 19, y el campo se define como FLOAT.

Creo que probablemente incluye todos los dígitos significativos, pero me preguntan si el número se puede almacenar exactamente como lo tenía Oracle. ¿Hay otro tipo de datos que almacenará TODOS los dígitos? ¿Hay alguna manera en SQL Server 2005 para mostrar el número no exponencial, pero mostrar todos los dígitos almacenados?

¿Fue útil?

Solución

El equivalente del NUMBER (p, s) el tipo de datos de Oracle en SQL Server es el numérico (p, s) tipo de datos. Tenga en cuenta que los valores predeterminados para p (precisión) y s (escala) no son los mismos en ambas plataformas.

En el servidor SQL, un flotante representa un número de coma flotante que es completamente diferente, representación aproximada de un número. En Oracle, el equivalente sería BINARY_DOUBLE .

Otros consejos

Usar tipo de datos decimales. decimal (p, s): p es un valor de precisión, s es un valor de escala.

en lugar de flotante, use Decimal (38,17). Esto debería permitirle almacenar el número con la misma precisión que tenía en Oracle.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top