Как остановить округление значений в службах интеграции SQL Server? - PullRequest
1 голос
/ 10 июня 2009

Я использую пакет служб SSIS, ничего не меняется от источника к месту назначения. Однако столбец, на который я обращаю внимание, имеет немного другой тип данных (который, я надеюсь, не имеет значения) в источнике и месте назначения; в источнике есть число (15,2), а в месте назначения - число (16,2), а данные в источнике - 4,75, и оно меняется на 5.

Сокращение на 1 цифру в десятичных разрядах, которое, я уверен, не должно иметь значения, потому что я проверил случай.

Почему округляется значение?

Ответы [ 4 ]

1 голос
/ 10 июня 2009

Очевидно, что вы упускаете важную информацию.

Вы смотрели данные в потоке в окне просмотра данных, чтобы увидеть, где происходит изменение?

0 голосов
/ 10 июля 2009

У меня тоже была такая же проблема. Кажется, есть ошибка в BIDS. Моя задача OLE DB ранее была настроена на получение цены в виде целого числа. Поняв свою ошибку, я изменил ее на деньги, но BIDS / SSIS продолжал округлять ее и трактовать как INT. Я перепробовал все, и в конце концов единственное, что нужно было решить, это удалить задачу OLE DB и перетащить новую. Я использовал тот же запрос, но с деньгами, и он работал нормально. Как будто у BIDS / SSIS странная «память», и единственный способ обойти это - начать снова!

0 голосов
/ 10 июня 2009

Согласовано. Там чего-то не хватает. Есть ли вероятность того, что вы выполняете какую-то операцию (например, умножение) на постоянное целое число где-то (умножение на 5 вместо 5)?

0 голосов
/ 10 июня 2009

Проверка расширенных редакторов каждой задачи в потоке данных (щелкните правой кнопкой мыши задачу -> Показать расширенный редактор). Перейдите на вкладку столбцов и проверьте столбцы Внешний, Входной и Выходной, чтобы убедиться, что ваш столбец никогда не является целым числом.

Полагаю, вы тянете его как целое число (в источнике), а не как число.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...