如何在postgres前端COPY中指定选项卡


83

我想使用psql“ \ copy”命令将数据从制表符分隔的文件中提取到Postgres中。我正在使用以下命令:

\copy cm_state from 'state.data' with delimiter '\t' null as ;

但是我收到此警告(表实际上可以正常加载):

WARNING:  nonstandard use of escape in a string literal
LINE 1: COPY cm_state FROM STDIN DELIMITER '\t' NULL AS ';'
HINT:  Use the escape string syntax for escapes, e.g., E'\r\n'.

如果'\ t'不正确,如何指定标签?


14
尝试错误消息提示的内容:\copy cm_state from 'state.data' with delimiter E'\t' null as ';'
Frank Farmer

是的,你是对的。我没有在错误消息上看到开头的“ E”。非常感谢!
克里斯·库里

2
E开始一个转义序列。想像E就像在C中用双引号引起来的字符串一样。E'\ t'==“ \ t”。
肖恩

Answers:


182

E'\t'告诉的PostgreSQL有可能被转义字符有:

\copy cm_state from 'state.data' with delimiter E'\t' null as ;

16
谢谢!这也COPY delimiter must be a single one-byte character为我解决了信息较少的错误。在此处添加它,以便搜索引擎可以对其进行选择。
Denis Drescher

这应该是错误消息的另一个答案。只是为了让搜索引擎将它捡起来:)
RK Kuppala '16

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.