2017-01-07 5 views
1

Нужна помощь, пожалуйста. У меня есть данные Excel, которые отформатированы. Пример 33.257615111 показывает как 33.258 (тридцать три миллиона двести пятьдесят восемь тысяч)Преобразование формата номера в SSIS

Я пытаюсь импортировать файл данных в SQL с использованием SSIS ETL. Есть ли способ преобразовать это во время процесса ETL как число с двумя десятичными знаками? т.е. 33257615,11

Спасибо

ответ

0

Это может быть сделано. Используйте производную колонку и выражение ROUND().

Внутри потока данных, между компонентом источника Excel и компонентом назначения OLE DB, добавьте компонент производного столбца. Внутри этого производного столбца создается новый столбец, который округляет значение.

(DT_NUMERIC,25,2)ROUND(MyColumnName, 2)

Карта Этот новый производный столбец выше вашего SQL назначения, и мы все готово.

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

Вам понадобится суммировать эту колонку? Если это так, округленные значения будут давать совсем другое значение, чем не округленные значения. Возможно, не делайте этого округления в SSIS и вместо этого сохраняйте полные числа. Пусть приложения, читающие эти данные, форматируют. Это так же просто.

SELECT ROUND(MyColumnName,2) AS MyColumnName 
FROM MyTable 

В multitier architecture, форматирование чисел должно быть оставлено на слой отображения, а не на уровне данных. Это именно то, что делает Excel. Это показывает вы округленное число, но за кулисами - это полная ценность. Не роняйте точность форматирования.

+0

Спасибо, сэр - хороший совет –