2011-06-17 606 views
0

我們正在嘗試將數據從Microsoft SQL Server傳輸到AS400系統。如果使用OLE DB目標組件(使用IBM OLE DB驅動程序),則數據將成功從SQL Server傳輸到AS400。SSIS轉換 - 從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. 

請讓我知道如果有人以前見過這個錯誤,我該如何解決這個問題?

+0

所以,繼續使用OleDB?!?!??! –

+0

OleDB for iSeries一次插入一條記錄。沒有批量插入。當我們需要傳輸更多行時需要很長時間。看起來像我們需要升級驅動程序,因爲錯誤是由於舊驅動程序。 –

回答

0

你爲什麼說OLEDB需要更多時間?我僅在我的ETL過程中使用這些組件,獲得了非常好的結果。

+0

用於SQL Server的OLEDB有一個執行快速加載的選項,所以它工作得很好。對於AS400,快速加載選項不可用。經過我的研究,確認AS400的OLEDB一次插入一行。我們看過所有選項,我們相信這是由於司機。研究結束後,我們的服務器上的「客戶端訪問ISeries訪問驅動程序」應該從11.64.00.00升級到12.64.00.00。升級後我仍然需要執行測試。 –