Массовая вставка задачи потока управления (SSIS) завершена без загрузки исходного файла, но также без ошибок

Я пытаюсь загрузить CSV-файл, содержимое которого приведено ниже, в таблицу базы данных SQL Server 2012 NYC_Business_Establishment_DataSet, используя «Задачу массовой вставки» в потоке управления SSIS 2012. Задача потока управления выполнена без ошибок, но я не вижу эту запись в целевой таблице. Пожалуйста посоветуй.

Содержимое CSV-файла

DBA,Establishment Street,Establishment Zip,Establishment Borough,Business Sector,Establishment Category,Type of Cuisine,Number Of Employees,Actual Opening Date
Palermo Salumeria,33-35 Francis Lewis Blvd,11358,Queens,,,,,
Foragers City Grocers,300 West 22nd Street,10011,Manhattan,,,,,
Cultural Xchange,35 Lafayette Ave,11217,Brooklyn,,,,3,

Целевая таблица USE [DB] GO

/****** Object:  Table [dbo].[NYC_Business_Establishment_DataSet]    Script Date: 5/19/2017 3:31:55 PM ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO

SET ANSI_PADDING ON
GO

CREATE TABLE [dbo].[NYC_Business_Establishment_DataSet](
    [DBA] [varchar](1000) NULL,
    [Establishment Street] [varchar](1000) NULL,
    [Establishment Zip] [int] NULL,
    [Establishment Borough] [varchar](100) NULL,
    [Business Sector] [varchar](1000) NULL,
    [Establishment Category] [varchar](1000) NULL,
    [Type of Cuisine] [varchar](100) NULL,
    [Number Of Employees] [int] NULL,
    [Actual Opening Date] [date] NULL
) ON [PRIMARY]

GO

SET ANSI_PADDING OFF
GO

Спасибо


person Harinath Arasu    schedule 19.05.2017    source источник
comment
добавить дополнительные сведения о CSV. с тем, что вы хотите в окончательный вывод? дайте ссылку на файл CSV   -  person Mr. Bhosale    schedule 19.05.2017


Ответы (2)


Проблема с входным файлом данных. Для последних двух столбцов [Количество сотрудников], [Фактическая дата открытия] данные в файле были пустой строкой, а не нулевым значением. Так что это терпит неудачу.

Я могу загрузить файл с помощью Data Flow Task. Добавлено преобразование производного столбца для преобразования строк в значения NULL.

TRIM([Number Of Employees]) == "" ? NULL(DT_I4)  : (DT_I4)[Number Of Employees]
TRIM([Actual Opening Date]) == "" ? NULL(DT_DBDATE) : (DT_DBDATE)[Actual Opening Date]
person Srinivasa Rao    schedule 19.05.2017
comment
Привет, Шриниваса. Спасибо за ответ. Не могли бы вы посоветовать, как вы обнаружили, что последние 2 столбца имеют пустую строку вместо нуля? Я не могу разобрать из файла. - person Harinath Arasu; 22.05.2017
comment
когда с BCP произошел сбой, я попытался загрузить его с помощью DataFlow. Получение ошибки недопустимого символа в столбце. Итак, догадались, что это должна быть проблема с пустым жалом. Как только я добавил преобразование производного столбца, я могу успешно загрузить данные. - person Srinivasa Rao; 22.05.2017
comment
Ого умничка, спасибо за подсказку. Попробую один раз и закрою этот вопрос. - person Harinath Arasu; 22.05.2017

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

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

Я предполагаю, что файл csv, когда он имеет пустое значение, должен быть вставлен как NULL.

Пожалуйста, дайте мне знать, если кто-то считает иначе.

person Harinath Arasu    schedule 25.05.2017