Преобразование SSIS - с SQL Server на AS400

Мы пытаемся перенести данные из Microsoft SQL Server в систему AS400. Если используется компонент назначения OLE DB (с драйверами IBM OLE DB), данные успешно передаются из SQL Server в AS400.

Поскольку OLE DB требует больше времени для передачи данных, мы решили изменить место назначения для использования ADO.NET. Если мы используем компонент назначения ADO.NET с драйверами IBM .NET, SSIS выдает общую ошибку преобразования данных. Наш пакет тоже очень прост, в нем указаны только источник и пункт назначения.

Опять же, назначение OLE DB работает нормально, но с тем же вводом, использующим назначение ADO.NET, мы получаем ошибку.

Detailed error msg:
[SSIS.Pipeline] Error: SSIS Error Code DTS_E_PROCESSINPUTFAILED.  
The ProcessInput method on component "DEST - FACT BILL" (1698) failed with error code 0xC020844B 
while processing input "ADO NET Destination Input" (1701). 
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.


[DEST - FACT BILL [1698]] Error: An exception has occurred during data insertion, 
the message returned from the provider is: SQL0189: Coded Character Set Identifier 37 not valid.
Cause . . . . . :   Coded Character Set Identifier (CCSID) 37 is not valid for one of the following reasons: -- 
The CCSID is not EBCDIC. -- The CCSID is not supported by the system. -- The CCSID is not valid for the data type. -- 
If the CCSID is specified for graphic data, then the CCSID must be a DBCS CCSID. -- 
If the CCSID is specified for UCS-2 or UTF-16 data, then the CCSID must be a UCS-2 or UTF-16 CCSID. -- 
If the CCSID is specified for CLOB, DBCLOB or DATALINK data, then the CCSID must not be 65535. -- 
If there are multiple DataLink columns with FILE LINK CONTROL, they must all have the same CCSID. -- 
The NORMALIZED clause can only be specified for a UTF-8 or UTF-16 CCSID. Recovery  . . . :   
Ensure that all CCSID values in the statement are supported by the system and are valid for the data type. 
For a list of valid CCSID values, refer to the DB2 UDB for iSeries SQL Reference topic in the Information Center, 
http://www.ibm.com/eserver/iseries/infocenter.

Сообщите мне, видел ли кто-нибудь эту ошибку раньше, и как я могу ее решить?


person Samir Patel    schedule 17.06.2011    source источник
comment
Так что продолжайте использовать OleDB?!?! ??!   -  person marc_s    schedule 17.06.2011
comment
OleDB для iSeries вставляет по одной записи за раз. Без объемной вставки. Когда нам нужно передать больше строк, требуется много времени. Похоже, нам нужно обновить драйвер, так как ошибка связана со старым драйвером.   -  person Samir Patel    schedule 22.06.2011


Ответы (1)


Почему вы говорите, что OLEDB требует больше времени? Я использую эти компоненты исключительно в своих процессах ETL с очень хорошими результатами.

person Josef Richberg    schedule 21.06.2011
comment
OLEDB для SQL Server имеет возможность выполнять быструю загрузку, поэтому работает отлично. Для AS400 опция быстрой загрузки недоступна. После моего исследования было подтверждено, что OLEDB для AS400 вставляет по одной строке за раз. Мы просмотрели все варианты и считаем, что это связано с водителем. После исследования «Клиентский доступ к драйверу доступа ISeries» должен быть обновлен на нашем сервере с 11.64.00.00 до 12.64.00.00. Мне все еще нужно провести тест после обновления. - person Samir Patel; 22.06.2011