我想知道是否有办法在 PL/pgSQL 中声明表类型的变量来保存查询结果?例如,我如何表达如下内容:
q1 = select * from foo;
q2 = select * from bar;
for t1 in q1:
for t2 in q2:
-- do something with t1 and t2
Run Code Online (Sandbox Code Playgroud)
我查看了 return next 构造,但它似乎只能处理返回值。
我正在开发一个带有两个参数的用户定义函数:
create or replace function gesio(
events_table_in regclass,
events_table_out regclass)
returns void as $$ ... $$
Run Code Online (Sandbox Code Playgroud)
events_table_in
并events_table_out
具有完全相同的架构。
简单解释一下,我遍历 的记录events_table_in
,操作记录并希望以events_table_out
以下方式追加(插入)操作的记录:
OPEN recCurs FOR execute
format('SELECT * FROM %s order by session_id, event_time', event_table_in);
LOOP
FETCH recCurs into rec;
if not found then
exit;
end if;
-- 1. do something with rec
-- 2. insert the rec into events_table_out
end loop;
Run Code Online (Sandbox Code Playgroud)
我怎样才能保存rec
到events_table_out
?