2012-07-30 242 views
0

我有一箇舊的AS/400系統在星期三脫機,我一直在嘗試將所有數據導入到SQL Server數據庫中用於備份現在一個星期,但我遇到麻煩了。將數據從AS/400 DB2導入到SQL Server數據庫中

SQL Server安裝了IBM System i Access for Windows,以及安裝了DB2OLEDB(Microsoft OLE DB Provider for DB2)。我曾嘗試將這兩個提供程序與SQL Server導入和導出嚮導一起使用,雖然我成功創建了連接並找到了正在查找的數據,但兩個提供程序都無法處理數據轉換。 DB2OLEDB將自動定位任何基於DECIMAL的字段,但這就是它。它不能自動查找和轉換CHARACTER NOT NULL字段,這是大部分字段。下面是我得到的錯誤,當我嘗試進口:

Column information for the source and the destination data could not be retrieved, or the data types of source columns were not mapped correctly to those available on the destination provider.

最常見的錯誤列:

  • Column "[column]": Source data type "CHARACTER" was not found in the data type mapping file.

有在AS/400表十萬,人工手動腳本了這一點絕對不是一種選擇。

有沒有更簡單的方法?有什麼地方我失蹤了嗎?

+0

你檢出了你的映射文件嗎?看看http://msdn.microsoft.com/en-us/library/gg163937(v=bts.70).aspx – NealB 2012-07-30 19:29:27

回答

0

經過大量的研究,我無法按照我需要的方式得到任何東西。我最終使用iAccess工具將其全部備份到Excel文件中。永遠,但它完成了。

感謝您的幫助。

0

嘗試在系統DSN中的「轉換」的高級選項卡中爲ODBC中的as/400設置「允許不受支持的字符」?

+0

這沒有奏效。 – stringpoet 2012-07-30 14:37:34

0

讀你的問題我不明白,如果問題是創建表。如果這是你的情況,我的意思是,如果你的問題是以T-SQL語言生成DDL以獲得準備好的數據庫表,那麼解決方案可能是使用諸如SAP Sybase Power Designer之類的工具進行反向工程。您有Sybase的試用版來測試它是否符合您的需求。

使用Sybase PowerDeigner步驟來創建DDL從AS/400到SQL Server是:

  • 準備從Sybase到AS/400的連接。
  • 從AS/400數據庫加載新的PDM。
  • 從PDM生成CDM。
  • 從CDM爲SQL Server生成PDM。
  • 從PDM生成數據庫t-sql腳本。
  • 在sql server中執行t-sql腳本。

在我看來,PowerDesigner的學習曲線並不難,但是你的問題涵蓋了所有的工程邏輯。

此時您可以嘗試將數據從一個數據庫複製到另一個數據庫。

相關問題