SSIS 转型 - 从 SQL Server 到 AS400

发布于 2024-11-15 17:14:37 字数 2065 浏览 1 评论 0原文

我们正在尝试将数据从 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.

如果有人以前见过这个错误,请告诉我,我该如何解决这个问题?

We are trying to transfer data from Microsoft SQL Server to an AS400 system. If OLE DB destination component is used (with IBM OLE DB Drivers), data get successfully transferred from SQL Server to AS400.

Since OLE DB takes more time to transfer data, we decided to modify our destination to use ADO.NET. If we use ADO.NET Destination component with IBM .NET drivers, SSIS throws a generic data conversion error. Our package is very simple too, which has source and destination only.

Again, OLE DB destination is working fine, but with the same input using ADO.NET destination we are receiving an error.

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.

Please let me know if someone has seen this error before and how can I resolve this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

━╋う一瞬間旳綻放 2024-11-22 17:14:37

为什么说OLEDB需要更多时间呢?我专门在 ETL 流程中使用这些组件,并取得了非常好的结果。

Why do you say that OLEDB takes more time? I use those components exclusively in my ETL processes with very good results.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文