我正在编写一个 PL/PGSQL 函数。它涉及处理查询的结果。文档中的 IIRCSELECT INTO
在这种情况下不起作用,但是,可以通过创建临时表来存储查询结果。
我运行以下快速测试:
create function foo() returns numeric as $body$
begin
create temporary table footable as
select * from some_table;
return 1.23;
end;
$body$ language plpgsql;
然后我运行测试它如下:
select * from foo();
1.23
select * from foo();
ERROR: relation "footable" already exists
CONTEXT: SQL statement "create temporary table footable as select * from
some_table"
PL/pgSQL function "foo" line 1 at SQL statement
那么,如何将查询结果临时缓存在变量中,以便稍后在我的存储过程中使用?
我正在使用 PG 8.4。