PostgreSQL 8.4 COPY命令解析错误

时间:2014-06-11 11:33:18

标签: postgresql postgresql-8.4

我是PostgreSQL 8.4的新手,我试图从临时表中导出csv文件。

正如我写的那样

SET client_encoding TO 'SJIS';
\copy temp_table TO 'temp_table.csv' WITH CSV HEADER;
SET client_encoding TO 'UTF8';

但是,此代码返回错误,如

\copy: parse error at ";"

请帮帮我... 提前谢谢!

2 个答案:

答案 0 :(得分:1)

\copythe psql command-line client8.4-specific documentation)的内部“元命令”,而不是SQL语句。

它的设计看起来非常类似于SQL COPY语句,但不需要(或接受)终止;,因为所有元命令都由换行符终止或{{ 1}}(用作新元命令的开头)。

所以你应该能够简单地删除它抱怨的角色:

\

另见this answer about COPY and \copy

答案 1 :(得分:-1)

Documentation个正确的语法是

COPY { table_name [ ( column_name [, ...] ) ] | ( query ) }
    TO { 'filename' | PROGRAM 'command' | STDOUT }
    [ [ WITH ] ( option [, ...] ) ]

这样,您的COPY语句应如下所示,移除\WITH

SET client_encoding TO 'SJIS';
copy temp_table TO 'temp_table.csv' CSV HEADER;
SET client_encoding TO 'UTF8';

(或)按照@IMSoP

的建议删除;
\copy temp_table TO 'temp_table.csv' WITH HEADER
相关问题