wfcjz 发表于 2009-12-20 11:27

[已解决]DB2数据导入问题,中文导入全是乱码。急解决!

原数据库平台:linux +SYBASE 12.5

现数据库平台:as400/db2

采用工具软件:Embarcadero DBA8.12

现在只做数据迁移,创建表、过程、触发器、索引有DB2下的脚本,全部创建完毕。

采用Embarcadero DBA8.12做数据导入时,很怪的问题,表里如果没有中文字符的完全可以导入,但是有中文的,导入乱码,而且数据导入不全。查看Embarcadero DBA8.12的导入报告提示如下:

Generating Create:
Failed Execute: INSERT INTO "dbo"."telrecord" ( "id_type", "id_name", "employee_num", "id_num", "bank_num", "tel_num", "charge_type", "charge_money", "dial_time", "time_len", "employee_name", "employee_sex", "department_num", "department_name" ) VALUES ( 2, '?°?¤±à??', '10018000001', ' ', '00001001800001 ', ' ', 0, 0.00, '2004-12-24 09:34:00.000000', 78, '??±??? ', ' ', '10018', '??×?·??????????í???? ' )
SQL0433N 值 " ° ¤±à " 太长。 SQLSTATE=22001
(22001.-433)

难道是表的列字符长度有问题,乱码又是怎么回事,通过db2 get db cfg 结果如下:

数据库的数据库配置



数据库配置发行版级别                  = 0x0d00

数据库发行版级别                                  = 0x0d00



数据库领域                                    = CN

数据库代码页                                    = 1386

数据库代码集                                       = GBK

数据库国家/地区代码                            = 86


那位高手伸手一下!

[ 本帖最后由 wfcjz 于 2009-12-26 21:32 编辑 ]

ywzj 发表于 2009-12-20 16:02

回复 #1 wfcjz 的帖子

Linux+Sybase出来的文本是Unicode编码的吗?
Embarcadero的字符集设置是Unicode的吗?
保证所有相关环境(如操作系统、客户端、工具软件)字符集设置为GB2312或GBK或GB18030。

wfcjz 发表于 2009-12-21 12:54

回复 #2 ywzj 的帖子

采用的不是TEXT文本导入,而是用Embarcadero直接做表对表的data copy,Embarcadero这个字符集在那里设置?

wfcjz 发表于 2009-12-26 21:31

解决了,个人用Embarcadero DBArtisan 8.6.1先做select * from 查出表里,在结果里生成inster into,然后丢在db2 的sql命令行运行器里,没有乱码了!郁闷了好几天!
页: [1]
查看完整版本: [已解决]DB2数据导入问题,中文导入全是乱码。急解决!