Вопрос

У меня есть номер из базы данных Oracle 47306832975095894070.85314746810624532. Когда я переношу его в SQL Server, он определенно не показывает столько цифр Показывается как 4.73068329750959E + 19, а поле определяется как FLOAT.

Я думаю, что это, вероятно, включает в себя все значащие цифры, но меня спрашивают, можно ли сохранить число в точности так, как оно было у Oracle. Есть ли другой тип данных, который будет хранить ВСЕ цифры? Есть ли способ в SQL Server 2005 отображать число не в показательной, а показывать все сохраненные цифры?

Это было полезно?

Решение

Эквивалент NUMBER (p, s) Тип данных Oracle на сервере Sql является numeric (p, s) . Обратите внимание, что значения по умолчанию для p (точность) и s (масштаб) не одинаковы на обеих платформах.

На сервере Sql плавать представляет собой число с плавающей запятой, которое является совершенно другим, примерное представление числа. В Oracle эквивалент будет BINARY_DOUBLE .

Другие советы

Используйте десятичный тип данных. десятичное число (p, s) - p - значение точности, s - значение масштаба.

вместо float, используйте Decimal (38,17). Это должно позволить вам хранить число с той же точностью, что и в Oracle.

scroll top