postgresql 資料匯入和匯出

yang1721發表於2013-07-16
       最近專案需要用到報表資料,資料需要從計算伺服器同步到報表前置機,在同步資料的時候總是報錯,但是報表系統又要給客戶登入檢視報表,實在沒辦法只能通過資料的匯入和匯出方式暫時同步下資料。
     PG的資料匯入和匯出的命令是通過copy來實現的。
     匯出資料命令:
      \copy tablename  to 'c:\123.txt' delimiter '|'
     匯入資料的命令
     \copy tablename from 'c:\123txt' delimiter '|'
     
     在同步資料時又坑爹的碰到字符集問題,通過psql的控制檯我們檢視資料庫的字符集。

 postgres=> \l

   名稱    |  擁有者  | 字元編碼 |
            Ctype                  |
-----------+----------+----------+--
-----------------------------------+
 mydb      | postgres | UTF8     | C
ese_People's Republic of China.936 |
 postgres  | postgres | UTF8     | C
ese_People's Republic of China.936 |
 template0 | postgres | UTF8     | C
ese_People's Republic of China.936 |
           |          |          |
                                   |
 template1 | postgres | UTF8     | C
ese_People's Republic of China.936 |
           |          |          |
                                   |
我們看到資料庫的字符集是UTF8,
然後我們看下我們的客戶端字符集
postgres=> show client_encoding  ;
 client_encoding
-----------------
 GBK
通過命令可以看到我們的客戶端字符集是GBK,客戶端和伺服器的字符集不一致,導致我的資料匯入報錯,問題的j解決方法很簡單。
    修改字符集,然後匯入資料。
  修改字符集命令:

postgres=> \encoding UTF8
檢視字符集
postgres=> show client_encoding;
 client_encoding
-----------------
 UTF8
(1 行記錄)

我們可以看到我們的客戶端字符集已經修改完成,然後再通過copy命令匯入資料。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16674653/viewspace-766415/,如需轉載,請註明出處,否則將追究法律責任。

相關文章