0

我有一个旧的 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 中有数千个表,因此手动编写脚本绝对不是一种选择。

有没有更简单的方法?有没有我想念的地方?

4

3 回答 3

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

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

于 2012-07-30T14:33:55.650 回答
0

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

于 2012-07-30T14:26:11.133 回答
0

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

谢谢您的帮助。

于 2012-08-01T14:50:30.033 回答