ora2pg 字符集 转换问题总结

本文介绍了使用开源工具ora2pg进行Oracle到PostgreSQL数据库迁移的过程及遇到的问题。针对字符编码不一致导致的数据导入错误,提供了详细的解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

近期做了oracle 转pg 的数据库转换测试:

使用了开源工具 ora2pg    http://ora2pg.darold.net/  

前期的测试 设定的条件太多了,都忘记情景了,

就直接写 问题和解决方案了

pg  initdb 的时候,指定为utf8编码,  导出的文本为gbk 编码,生成文本数据导入pg 的时候,一些非正常的字符,例如全角字符的一半



会导致无人进入pg 数据库。 


最终解决方案: 
ora2pg.conf  
 文件中 : 

设置   NLS_LANG        AMERICAN_AMERICA.UTF8 

导入pg 的时候 设定字符集: 

psql > \encoding  UTF8 


这样导入的数据是utf8编码的,在psql 里是无法查看的。 

需要设定  

psql >  \encoding  GB18030  

如果设置 GBK 字符集 会报错类似于:


sns_pclady=> \encoding GBK;                                                    
sns_pclady=> select * from sns_album where id=97979 ;
ERROR:  character 0xeea097 of encoding "UTF8" has no equivalent in "GBK"
STATEMENT:  select * from sns_album where id=97979 ;
ERROR:  character 0xeea097 of encoding "UTF8" has no equivalent in "GBK"
sns_pclady=> \encoding GB18030
sns_pclady=> select * from sns_album where id=97979 ;
  id   | account_id |                                 album_name                                 | album_cover | pic_count | hidden | is_system | censor | censor_status | censor_date |     create_time     |     last_update     | pending_time | version | commend | commend_time | has_audit | last_repaste | isstandby | readonly
-------+------------+----------------------------------------------------------------------------+-------------+-----------+--------+-----------+--------+---------------+-------------+---------------------+---------------------+--------------+---------+---------+--------------+-----------+--------------+-----------+----------
 97979 |   13071971 | ÈÈÏߵ绰¡¾£´£°£°þR£¶£¶£¹¡¨þR£·£¶£·£¸¡¿Ïû·ÑÕß0571-888198É̼Ò058857858 |             |         0 |      3 |         0 |        |             1 |             | 2010-06-03 21:56:08 | 2010-06-03 21:56:08 |              |       1 |         |              |         0 |              |           |        0
(1 row)

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/133735/viewspace-714010/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/133735/viewspace-714010/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值