依依和陌生人 2008-8-15 14:42
DB2 的 db2move 工具在导入数据时遇到 SQL3063N 的报错?
环境 产品:[url=http://whatis.ctocio.com.cn/searchwhatis/144/5947644.shtml]DB2[/url] UDB
平台:跨平台
版本:V8
问题 当用户使用 DB2 提供的 db2move 工具从一个[url=http://database.ctocio.com.cn/]数据库[/url]中导出数据,然后试图再使用该工具导入到另一个不同码页的数据库时,会遇到如下报错:
SQL3063N H 记录中的单字节代码页值“<值-1>”与应用程序的单字节代码页值“<值02>”不兼容。未指定 FORCEIN 选项。
解答 由于用 DB2 的 db2move 工具导出的数据文件格式均为 IXF,其中包括数据库代码页的信息,因此产生这一问题的原因在于导出操作与导入操作的数据库代码页不一致而引起的。如果使用 DB2 的 [url=http://whatis.ctocio.com.cn/searchwhatis/480/6025480.shtml]import[/url] 作为导入工具,则可加 FORCEIN 选项使 import 假设导入导出的数据库代码页是一致的而忽略对代码页的检查,但由于 db2move 工具不提供 FORCEIN 的选项,要使用该工具将从不同码页的数据库中导出的数据导入到数据库中,可利用如下方法:
在源数据库环境下执行:
1. 设置 [url=http://whatis.ctocio.com.cn/searchwhatis/121/5949121.shtml]Unicode[/url] 码页的 DB2 注册表变量:
db2set db2codepage=1208
db2 terminate
2. 使用 db2move 加 export 选项导出数据。注:必须同时加上“-aw”选项以忽略消息文件中报出的警告信息。
3. 复原 db2codepage 的设置。
在目标数据库环境下执行:
1. 设置 Unicode 码页的 DB2 注册表变量:
db2set db2codepage=1208
db2 terminate
2. 使用 db2move 加 import 选项导入数据。
3. 复原 db2codepage 的设置。
注:使用这种方法进行数据的导出/导入操作时,不同于 FORCEIN 选项,存在代码页之间的转换,因此适用于源数据库中导出的数据均为单字节数据的情况。