【发布时间】:2017-03-12 03:29:54
【问题描述】:
我有一个匿名函数,其中包含执行 100 次的 FOR 循环中的查询,我需要将 100 个结果集保存为远程客户端上的 100 个文件(不是在服务器上)。
似乎 psql \copy 元命令应该是执行此操作的方法,但我不知所措。也许是这种形式的东西?
\copy (anonymous_function_w/_FOR_loop_here) to 'filename.txt'
其中 filename.txt 是根据每次迭代中 FOR 循环变量的值构建的。这很重要——远程客户端上的文件需要根据 FOR 循环的变量来命名。
有没有办法解决这个问题?我想另一种方法是将所有 100 个查询结果合并为一个大结果,将 FOR 循环的变量值放在一个字段中,然后使用 bash 脚本将其拆分为 100 个适当命名的文件。但是我的 bash 技能很蹩脚。如果 psql 可以直接完成这项工作,那就太好了。
编辑:我应该补充一点,这是 FOR 循环变量的样子:
FOR rec IN SELECT DISTINCT county FROM voter.counties
所以文件名将由 rec.county + '.txt' 构建
【问题讨论】:
标签: postgresql psql