以下代码:
Copy ( select bla
from some_table p,
some_procedure (par1 := null,
par2 := null ) as sp
where p.var1 = sp.var1
order
by some_table_id) to stdout;
...在脚本内(即在psql中)工作,但在Pl / pgSQL函数内失败。
在函数内部时,错误消息如下:
"ERROR: cannot COPY to/from client in PL/pgSQL"
我的问题是: 如何在Pl / pgSQL函数中执行相同的操作?
答案 0 :(得分:1)
./gradlew clean deployNodes
仅仅是运行该语句的客户端。
所以只需将函数声明为stdout
并返回查询结果:
returns table()
如果这是一个匿名PL / pgSQL块,则可以遍历结果,然后使用create function get_data(var1 ..., var2 ...)
returns table (bla....)
as
$$
select bla
from some_table p
join some_procedure (par1 := null, par2 := null ) as sp
on p.var1 = sp.var1
order by some_table_id;
$$
language sql;
“打印”它:
raise notice