Как загрузить пустые значения в файл типа целочисленных данных?
Я хочу загрузить данные файла CSV в sql таблицу сервера с помощью пакета ssis.
Исходный файл CSV emp
данные is
id | Name | deptno
1 |ab |NULL
2 | |NULL
3 |dhd |NULL
Target sql серверная таблица emp:
id int, name varchar(50), deptno int
Я работаю с типом данных, используя режим showfited для внешних столбцов и выходных столбцов согласно типам данных целевой таблицы
после этого я выполняю пакет. здесь я не могу загрузить нулевые значения в поле int deptno
и получаю сообщения об ошибках, как показано ниже:
[Назначение OLE DB [27]] Ошибка: Код ошибки служб SSIS DTS_E_OLEDBERROR. Произошла ошибка OLE DB. Код ошибки: 0x80040E21. Доступна запись OLE DB. Источник: «Microsoft SQL Server Native Client 11.0» Hresult: 0x80040E21 Описание: «Многошаговая операция OLE DB вызвала ошибки. Проверьте каждое значение состояния OLE DB, если оно доступно. Работы не было.».
[Назначение OLE DB [27]] Ошибка: произошла ошибка с назначением OLE DB. Входы [Вход назначения OLE DB]. Колонки [depno] на Назначение OLE DB. Входы [Вход назначения OLE DB]. Возвращено состояние столбца: «Не удалось преобразовать значение из-за потенциальной потери данных.».
[Назначение OLE DB [27]] Ошибка: код ошибки SSIS DTS_E_INDUCEDTRANSFORMFAILUREONERROR. Ошибка «Назначение OLE DB. Вход [Назначение OLE DB]» завершилась ошибкой, поскольку произошел код ошибки 0xC0209077, а расположение строки ошибки в «Назначение OLE DB. Входы [Назначение OLE DB]» указывает на ошибку при ошибке. Произошла ошибка в указанном объекте указанного компонента. Перед этим могут быть сообщения об ошибках с дополнительной информацией о сбое.
[SSIS.Pipeline] Ошибка: Код ошибки SSIS DTS_E_PROCESSINPUTFAILED. Метод ProcessInput для компонента «Назначение OLE DB» (27) завершился ошибкой с кодом ошибки 0xC0209029 при обработке ввода «Вход назначения OLE DB» (40). Указанный компонент возвратил ошибку из метода ProcessInput. Ошибка указана для компонента c, но она является фатальной и приведет к остановке выполнения задачи «Поток данных». До этого могут быть сообщения об ошибках с дополнительной информацией о сбое.
Я пробовал другой способ, используя производный столбец: UPPER([deptno]) == "NULL" ? NULL(DT_I4) : [deptno]
это также дает ошибку
![enter image description here](https://i.stack.imgur.com/zJuVU.png)
Подскажите, пожалуйста, как загрузить нулевые значения в sql серверных таблицах для целочисленных типов данных с использованием пакетов ssis?