用informix自带dbaccess执行unload语句导出数据为unl文件
由于informix用的gb18030字符集,postgresql用的utf8字符集
用linux自带的sed命令对导出的unl文件行尾多余的分隔符|进行替换删除
然后用linux自带的iconv命令对导出的informix进行转码
然后用postgresql的psql的copy语句来进行导入
导入的时候经常会出现列对不齐导致导入失败
最后发现原数据库的中文的”珅“字会变成为”玕|“,而”|“是informix的默认分隔符,从而导致列变多。
起初以为是utf8转码的时候造成的
逐步分析发现竟然是unload语句从informix数据库中导出未转码前,”珅“字已变成为”玕|“
解决方法:
将nformix的unload语句中的默认分隔符”|“换成”,",问题得到了解决。
语句示例如下:
unload to 123.unl delimiter ','
select * from xxxx;
Informix至PostgreSQL数据迁移

本文介绍如何从Informix数据库导出数据并导入到PostgreSQL数据库的过程中遇到的问题及解决方案,特别是针对字符集转换和分隔符冲突的问题。
1233

被折叠的 条评论
为什么被折叠?



