[已解决]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 编辑 ]
回复 #1 wfcjz 的帖子
Linux+Sybase出来的文本是Unicode编码的吗?Embarcadero的字符集设置是Unicode的吗?
保证所有相关环境(如操作系统、客户端、工具软件)字符集设置为GB2312或GBK或GB18030。
回复 #2 ywzj 的帖子
采用的不是TEXT文本导入,而是用Embarcadero直接做表对表的data copy,Embarcadero这个字符集在那里设置? 解决了,个人用Embarcadero DBArtisan 8.6.1先做select * from 查出表里,在结果里生成inster into,然后丢在db2 的sql命令行运行器里,没有乱码了!郁闷了好几天!
页:
[1]