使用COPY FROM stdin将BYtea数据导入PostgreSQL

rmu*_*ler 2 csv postgresql import

我通过外部程序生成了一个(UTF-8)文件,用于导入PostgreSQL 9.6.1。问题是该bytea字段(PWHASH)。

该文件的摘录(使用TAB作为分隔符)

COPY USERS (ID,CODE,PWHASH,EMAIL) FROM stdin;
7   test1   E'\\\\x657B954D27B4AC56FA997D24A5FF2563'    test@amce.org
\.
Run Code Online (Sandbox Code Playgroud)

汇入时

psql mydb myrole -f test.sql
Run Code Online (Sandbox Code Playgroud)

一切顺利。

但是,如果我查询结果,则字节数组不是16个字节,而是37个字节:

select passwordhash,length(passwordhash) from users;
                                 passwordhash                                 | length 
------------------------------------------------------------------------------+--------
 \x45275c78363537423935344432374234414335364641393937443234413546463235363327 |     37
Run Code Online (Sandbox Code Playgroud)

正确的语法是什么?

Lau*_*lbe 5

输入文件的格式错误。应该是这样的:

7   test1   \\x657B954D27B4AC56FA997D24A5FF2563 test@amce.org
Run Code Online (Sandbox Code Playgroud)