2012-07-30 140 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的学习曲线并不难,但是你的问题涵盖了所有的工程逻辑。

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

相关问题