我有一个旧的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中有数千个表,因此手动编写这些表绝对不是一种选择。
有更简单的方法吗?我错过了什么地方?
答案 0 :(得分:0)
尝试在系统DSN的“转换”高级选项卡中为ODBC中的as / 400设置“允许不支持的字符”?
答案 1 :(得分:0)
阅读你的问题我不明白问题是否正在创建表格。如果这是你的情况,我的意思是,如果你的问题是用T-SQL语言生成DDL来准备数据库表,那么解决方案可能是用SAP Sybase Power Designer这样的工具进行逆向工程。您有一个Sybase的试用版来测试它是否符合您的需求。
使用Sybase PowerDeigner创建从AS / 400到SQL Server的DDL的步骤是:
在我看来,PowerDesigner的学习曲线并不难,但您的问题涵盖了所有工程逻辑。
此时您可以尝试将数据从一个数据库复制到另一个数据库。
答案 2 :(得分:0)
经过大量的研究,我无法以我需要的方式工作。我最终使用iAccess工具将其全部备份到Excel文件中。永远,但它完成了。
感谢您的帮助。