我正在尝试在 csv 文件中导出一些聚合数据。我想使用 postgresql 的命令 COPY,就像下面的代码一样,但是我从一个返回动态表的 EXECUTE 命令中获取数据。COPY 命令仅从表中获取数据,但我无法将结果保存在临时表中,因为我不知道执行查询将生成的列数。此外,我正在尝试保存大型数据集,并且我会避免在中间表中复制它。有没有人知道任何解决方法?
CREATE OR REPLACE FUNCTION ExportSnapshotToCsv(qe TEXT)
RETURNS void AS $$
BEGIN
COPY (Execute qe) To '/tmp/test.csv' With CSV DELIMITER ',';
END; $$
LANGUAGE plpgsql;