SSIS, как преобразовать объект в varBinary для SQL

У меня есть файл csv из csvde, который имеет objectGUID и некоторую другую информацию из AD.

Я хочу использовать SSIS для копирования этой информации в следующую таблицу в SQL.

[DN] [varchar](255) NULL,
[ObjectGuid] [varbinary](50) NULL,
[pwdExpiry] [bigint] NULL

Пример файла csv из файла csvde выглядит следующим образом:

DN,objectGUID,msDS-UserPasswordExpiryTimeComputed
"CN=DEFRAVMDROOTCA1,OU=Test,DC=company,DC=net",X'c7eb536bc818f842bde11d8152755e7e',9223372036854775807
"CN=Sajeed Temp,OU=Test,DC=company,DC=net",X'417979aad0a9cc49818d1960ec95fb80',130834271604215531
"CN=IAMToolset.2,OU=Test,DC=company,DC=net",X'5a936d02842275458c45c1eb932a0f67',130849689154565841
"CN=IAMToolset.3,OU=Test,DC=company,DC=net",X'c03d2d11f8d8fe40a0eac70d41f3e1fd',130849689796313340
"CN=IAMToolset.4,OU=Test,DC=company,DC=net",X'e8b084e9d8c4a8428284ecb40b628da8',130849690015854425
"CN=IAMToolset.5,OU=Test,DC=company,DC=net",X'4b4e17dfce09e049941f3bd0ecddd5bb',130849690271803391
"CN=IAMToolset.6,OU=Test,DC=company,DC=net",X'004454a17c997b43af8e4b2653b491c2',130849690477125089
"CN=IAMToolset.7,OU=Test,DC=company,DC=net",X'8f70d9c64514c1409364624e3b079d42',130849690693072263
"CN=IAMToolset.8,OU=Test,DC=company,DC=net",X'ff70df18badafb4491225b29470b9a3d',130849690864329935
"CN=IAMToolset.9,OU=Test,DC=company,DC=net",X'a081e666a2df3c4481a4f124b489fdd8',130849691049650737
"CN=IAMToolset.1,OU=Test,DC=company,DC=net",X'8c59987d0a5c2a4ea1e98d07a84e1144',130849691453887596
"CN=testmigration,OU=Test,DC=company,DC=net",X'a800d0e29335d248ad990ad31fd5dd52',130732638130905654
"CN=DEFRAVMDPKMCA1,OU=Test,DC=company,DC=net",X'0d67d30bcbbbed48af9ed7736f9b1992',9223372036854775807

У меня есть пакет SSIS с двумя диспетчерами соединений. Один из них предназначен для плоского файла, и я читаю столбец objectGUID из csv в виде строки. Дело в том, что я хочу преобразовать этот столбец внутри задачи потока данных в формат, который я могу передать в столбец [ObjectGuid] varbinary NULL в таблице SQL.

Я использовал преобразование преобразования данных и пытался преобразовать в DT_GUID и DT_BYTES, но они оба терпят неудачу на этом этапе преобразования данных при запуске пакета.

Итак, что я действительно хочу увидеть, так это то, что если у меня есть objectGUID в файле csv как

X'168dea153aab0a45adf8079b94041e90' (строка) я хочу видеть его в таблице SQL как 0x168DEA153AAB0A45ADF8079B94041E90 (varBinary)

Ошибка, которую я получаю во время выполнения SSIS:

Error: 0xC02020C5 at Data Flow Task, Data Conversion [2]: Data conversion failed while converting column "ObjectGuid.LeftCleaned" (16) to column "Copy of ObjectGuid.LeftCleaned" (6).  The conversion returned status value 2 and status text "The value could not be converted because of a potential loss of data.".
Error: 0xC0209029 at Data Flow Task, Data Conversion [2]: SSIS Error Code DTS_E_INDUCEDTRANSFORMFAILUREONERROR.  The "Data Conversion.Outputs[Data Conversion Output].Columns[Copy of ObjectGuid.LeftCleaned]" failed because error code 0xC020907F occurred, and the error row disposition on "Data Conversion.Outputs[Data Conversion Output].Columns[Copy of ObjectGuid.LeftCleaned]" specifies failure on error. An error occurred on the specified object of the specified component.  There may be error messages posted before this with more information about the failure.
Error: 0xC0047022 at Data Flow Task, SSIS.Pipeline: SSIS Error Code DTS_E_PROCESSINPUTFAILED.  The ProcessInput method on component "Data Conversion" (2) failed with error code 0xC0209029 while processing input "Data Conversion Input" (3). The identified component returned an error from the ProcessInput method. The error is specific to the component, but the error is fatal and will cause the Data Flow task to stop running.  There may be error messages posted before this with more information about the failure.

Пожалуйста помоги


person gtrivedi    schedule 04.02.2016    source источник


Ответы (1)


Я считаю, что ключ здесь:

«Не удалось преобразовать значение из-за возможной потери данных».

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

ДлинаКонверсииДанных

person Phil Schwartz    schedule 05.02.2016
comment
Чем Фил. Я это сделал. Эта ошибка исчезла, но теперь какая-то другая ошибка. - person gtrivedi; 05.02.2016
comment
Я добавил 128, но знаю, что они не должны занимать более 50 в столбце базы данных. - person gtrivedi; 05.02.2016