PostgreSQL如何匯入SJIS字符集的檔案

2021-09-06 12:17:37 字數 3123 閱讀 5142

磨礪技術珠磯,踐行資料之道,追求卓越價值 

回到上一級頁面: postgresql雜記頁     回到頂級頁面:postgresql索引頁

[作者 高健@  [email protected]]

外部檔案來自於windows,日語sjis字符集。

由於sjis字符集和標準的posix有衝突,故linux平台一般是不支援此字符集的。而postgresql的伺服器端也不支援它。

但是它支援客戶端使用sjis,因此匯入時,可以用postgresql的自動變換功能。

具體如下:

--

---------------------------

linux encoding:

[root@pg200 data

]# echo $lang

ja_jp.utf-8

[root@pg200 data]#

-----------------------------

postgresql encoding:

postgres

=# \x

expanded display

ison

.postgres

=# \l

list

ofdatabases-[

record 1 ]--

---+----------------------

name |

postgres

owner

|postgres

encoding

|utf8

collate

| ja_jp.utf-

8ctype

| ja_jp.utf-

8access

privileges|-

[record 2 ]--

---+----------------------

name |

template0

owner

|postgres

encoding

|utf8

collate

| ja_jp.utf-

8ctype

| ja_jp.utf-

8access

privileges

|=c/

postgres

| postgres=ctc/postgres -

[record 3 ]--

---+----------------------

name |

template1

owner

|postgres

encoding

|utf8

collate

| ja_jp.utf-

8ctype

| ja_jp.utf-

8access

privileges

|=c/

postgres

| postgres=ctc/

postgres

postgres=#

-----------------------------

windows side file:(sjistest.txt)

ああああ

いいいい

うううう

ええええ

おおおお

-----------------------------

directly show it in linux:

[root@pg200 data

]# cat sjistest.txt

-----------------------------

in postgresql、directly copy:

[postgres@pg200 pgsql

]$ ./bin/

psql

psql (

9.2.4

)type "help"

forhelp.

postgres

=# copy t1 from

'/usr/local/pgsql/data/sjistest.txt';

error: invalid byte sequence

for encoding "utf8": 0x82

context: copy t1, line

1postgres=#

-----------------------------

postgresql automatically changing:

[postgres@pg200 pgsql

]$ ./bin/

psql

psql (

9.2.4

)type "help"

forhelp.

postgres

=# set client_encoding to

'sjis

'; set postgres=# copy t1 from

'/usr/local/pgsql/data/sjistest.txt';

copy

5postgres

=# set client_encoding to

'utf8

'; set postgres=# select

*from

t1; val

----------

ああああ

いいいい

うううう

ええええ

おおおお(5

rows)

postgres

=#

[作者 高健@  [email protected]]

postgresql雜記頁

回到頂級頁面:

postgresql索引頁

磨礪技術珠磯,踐行資料之道,追求卓越價值 

PostgreSQL匯出匯入

整理了一下postgresql匯入匯出相關schema的方法。一 匯出 匯出his庫里crm的schema表結構和資料 n引數 pg dump h 192.168.2.154 p 5432 d his n crm f test.sql 只匯出his庫里crm的schema表結構 s引數 pg dum...

PostgreSQL匯出匯入

整理了一下postgresql匯入匯出相關schema的方法。一 匯出 匯出his庫里crm的schema表結構和資料 n引數 pg dump h 192.168.2.154 p 5432 d his n crm f test.sql 只匯出his庫里crm的schema表結構 s引數 pg dum...

PostgreSQL匯入匯出資料

1,導整個資料庫 如何匯出postgresql資料庫中的資料 pg dump u postgres d mydatabase f dump.sql 匯入資料時首先建立資料庫再用psql匯入 createdb newdatabase psql d newdatabase u postgres f du...