MS SQL Server SSIS Ошибка импорта десятичное значение - PullRequest
0 голосов
/ 08 февраля 2019

У меня есть следующий CSV-файл

Column
2,3
2,4

И каждый раз, когда я импортирую данные через пакеты служб SSIS, я получаю сообщение об ошибке из-за значения запятой.Когда я меняю 2,3 и 2,4 на 2,3 и 2,4, он работает нормально.И значения будут храниться правильно с 2,3 и 2,4 в таблице.

Для импорта я использую кодовую страницу 1252 ANSI-Lateinisch I и поле в БД является десятичным (18,2).

Что не так с моим импортом?Есть идеи?

Спасибо

Ответы [ 2 ]

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

Вы упомянули причину ошибки в вопросе:

Когда я меняю 2,3 и 2,4 на 2,3 и 2,4, он работает нормально.И значения будут храниться правильно с 2,3 и 2,4 в таблице.

Что означает, что , вызывает проблему.Убедитесь, что он не используется в качестве разделителя.

В диспетчере соединений с плоскими файлами перейдите на вкладку «Дополнительно», выберите столбец и измените свойство разделителя столбцов.

Если это последний столбец в строке, измените разделитель на {CRLF}.

Если в файле много столбцов, а разделитель - запятая ,, вам необходимозамените его на . или используйте добавление квалификатора текста.

Обходной путь

Если он все еще не работает, измените тип столбца на DT_STR, затем в Data flow task добавьтепроизводный столбец, который заменяет , на , и приводит значение как десятичное.Пример:

(DT_DECIMAl,2)REPLACE([COLUMN], ",", ".") 
0 голосов
/ 08 февраля 2019

В вашем диспетчере соединений csv измените разделитель столбца на символ {CrLf}.

...