Как импортировать пустую строку как нулевую метку в CSV-файлы с помощью пакета ssis - PullRequest
0 голосов
/ 01 мая 2020

Как импортировать пустую строку в виде нулевой метки в CSV-файлах с помощью пакета ssis

csv file have values : 
id |name |deptno | sal
1  |a    |NULL   |NULL
2  |b    |NULL    |NULL
3  |c    |NULL    |NULL
NULL|d   |10      |NULL

тип файла: CSV-значения, разделенные запятыми enter image description here

[![enter code here][2]][2]


Target table emp : 
id |name |deptno | sal
1  |a    |NULL   |NULL
2  |b    |NULL    |NULL
3  |c    |NULL    |NULL
NULL|d   |10      |NULL

Здесь я не получаю нулевые значения в БД и получаю строковые нулевые значения enter image description here enter image description here

как решить проблему нулевых значений на стороне пакета ssis

1 Ответ

0 голосов
/ 01 мая 2020

У меня нет удобной установки SSDT, поэтому я не могу добавить скриншот для этого, и выражения будут просто «закрывать». Скорее всего, им потребуется некоторая настройка.

В вашем Data Flow Task между источником и пунктом назначения добавьте Derived Column Transformation. Добавьте две новые колонки. Назовите их чем-то похожим на две колонки, с которыми у вас проблемы; скажем dept_no_clean и sal_clean. Оставьте их на <Add as new column>.

Для Expression вы должны указать SSIS преобразовать строковое значение 'NULL' в фактическое значение NULL, в противном случае просто передайте значение цифры 1022 * (я думаю, для типов данных здесь. Вы захотите установить их так, как вам нужно. Я буду использовать INTEGER для dept_no и десятичное число для sal.):

sal_clean      sal="NULL" ? NULL(DT_NUMERIC, 18, 2) : (DT_NUMERIC, 18, 2)sal

dept_no_clean  dept_no="NULL" ? NULL(DT_I4) : (DT_I4)dept_no

выражение является условным IF/THEN/ELSE. И, опять же, может быть не на 100% правильно, как написано.

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

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