SSIS Преобразование данных преобразования - PullRequest
0 голосов
/ 16 февраля 2019

в SSIS Я читаю CSV-файл с форматом столбца - например, 1.25 или 2.50.В задаче преобразования данных я преобразую в десятичную dt_decimal scala 2. В таблице данных столбец имеет десятичный формат (18,2).

Данные будут храниться с 125.00 или 25.00 вместо 1.25 и 2.50.

Что мне нужно настроить?

1 Ответ

0 голосов
/ 16 февраля 2019

Возможные причины проблемы

(1) Несоответствие типов данных

Я думаю, что аналогичная проблема вызвана несоответствием типов данных между источником и назначением или преобразованием данныхВывод и назначение.

(2) Числовые разделители

Другая причина может заключаться в том, что числовые значения содержат запятую , в качестве форматирования, например тысячи запятых 1,000,000и десятичный разделитель . как 1.02.


Возможные решения

(1) Укажите тип данных в источнике

Для предотвращенияэта проблема возникает из-за преобразований данных и если ваши исходные данные хорошо отформатированы.Тогда нет необходимости в преобразовании данных.Внутри Flat File Connection Manager редактора.Перейти на вкладку «Дополнительно», выберите столбец с десятичной дробью и измените его тип данных (попробуйте DT_NUMERIC и DT_DECIMAL) и свойство точности и масштаба.

enter image description here

Если проблема все еще возникает, убедитесь, что и вход, и выход имеют одинаковые метаданные (точность и масштаб).

(2) Производный столбец

Или следует использовать преобразование производного столбца с аналогичным выражением:

(DT_NUMERIC,18,2)[COLUMN] 

(3) Заменить разделитель, используя производный столбец

Вы можете заменить разделитель, используя производный столбец

(DT_NUMERIC,18,2)REPLACE([COLUMN], ",", ".") 
...