SSIS转换 - 从SQL Server到AS400

时间:2011-06-17 14:41:59

标签: ibm-midrange ssis

我们正在尝试将数据从Microsoft SQL Server传输到AS400系统。如果使用OLE DB目标组件(使用IBM OLE DB驱动程序),则数据将成功从SQL Server传输到AS400。

由于OLE DB需要更多时间来传输数据,因此我们决定修改目标以使用ADO.NET。如果我们将ADO.NET Destination组件与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.

如果有人之前看过这个错误,请告诉我,如何解决?

1 个答案:

答案 0 :(得分:0)

为什么说OLEDB需要更多时间?我在ETL过程中专门使用这些组件,效果非常好。