将PL/pgSQL输出从PostgreSQL数据库保存到CSV文件的最简单方法是什么?
我正在使用PostgreSQL 8.4和pgAdmin III以及PSQL插件来运行查询.
我正在尝试编写一个脚本,将交叉表查询中的数据复制到Postgres 8.4中的.csv文件中.我能够在psql命令行中运行该命令,但是当我将命令放在一个文件中并使用该-f选项运行它时,我收到语法错误.
这是我正在看的一个例子(从这个伟大的答案):
CREATE TEMP TABLE t (
section text
,status text
,ct integer
);
INSERT INTO t VALUES
('A', 'Active', 1), ('A', 'Inactive', 2)
,('B', 'Active', 4), ('B', 'Inactive', 5)
, ('C', 'Inactive', 7);
\copy (
SELECT * FROM crosstab(
'SELECT section, status, ct
FROM t
ORDER BY 1,2'
,$$VALUES ('Active'::text), ('Inactive')$$)
AS ct ("Section" text, "Active" int, "Inactive" int)
) TO 'test.csv' HEADER CSV
Run Code Online (Sandbox Code Playgroud)
然后我运行它并得到以下语法错误:
$ psql [system specific] -f copy_test.sql
CREATE TABLE
INSERT …Run Code Online (Sandbox Code Playgroud) 我正在使用PostgreSql数据库。我想从数据库中选择一些数据并将其复制到csv文件中。这有效:
\COPY (SELECT * from table) TO '/csv_dir/csv_file.csv';
Run Code Online (Sandbox Code Playgroud)
我的问题是只有当整个命令仅在一行中时它才有效。如何在多行中编写 COPY 命令?这个 sql 是我想放在更多行中的。