ora2pg 字符集 轉換問題總結

babyyellow發表於2011-12-27
近期做了oracle 轉pg 的資料庫轉換測試:

使用了開源工具 ora2pg   

前期的測試 設定的條件太多了,都忘記情景了,

就直接寫 問題和解決方案了

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/,如需轉載,請註明出處,否則將追究法律責任。

相關文章