我是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 ";"
请帮帮我... 提前谢谢!
答案 0 :(得分:1)
\copy
是the psql
command-line client(8.4-specific documentation)的内部“元命令”,而不是SQL语句。
它的设计看起来非常类似于SQL COPY
语句,但不需要(或接受)终止;
,因为所有元命令都由换行符终止或{{ 1}}(用作新元命令的开头)。
所以你应该能够简单地删除它抱怨的角色:
\
答案 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