将数据从AS / 400 DB2导入SQL Server数据库

时间:2012-07-30 14:18:18

标签: sql-server db2 ibm-midrange database-migration

我有一个旧的AS / 400系统在星期三下线,我一直试图将所有数据导入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]”:在数据类型映射文件中找不到源数据类型“CHARACTER”。
  •   

AS / 400中有数千个表,因此手动编写这些表绝对不是一种选择。

有更简单的方法吗?我错过了什么地方?

3 个答案:

答案 0 :(得分:0)

尝试在系统DSN的“转换”高级选项卡中为ODBC中的as / 400设置“允许不支持的字符”?

答案 1 :(得分:0)

阅读你的问题我不明白问题是否正在创建表格。如果这是你的情况,我的意思是,如果你的问题是用T-SQL语言生成DDL来准备数据库表,那么解决方案可能是用SAP Sybase Power Designer这样的工具进行逆向工程。您有一个Sybase的试用版来测试它是否符合您的需求。

使用Sybase PowerDeigner创建从AS / 400到SQL Server的DDL的步骤是:

  • 从sybase准备与AS / 400的连接。
  • 从AS / 400数据库加载新的PDM。
  • 从PDM生成CDM。
  • 从CDM为SQL Server生成PDM。
  • 从PDM生成数据库t-sql脚本。
  • 在sql server中执行t-sql脚本。

在我看来,PowerDesigner的学习曲线并不难,但您的问题涵盖了所有工程逻辑。

此时您可以尝试将数据从一个数据库复制到另一个数据库。

答案 2 :(得分:0)

经过大量的研究,我无法以我需要的方式工作。我最终使用iAccess工具将其全部备份到Excel文件中。永远,但它完成了。

感谢您的帮助。