PL/PGSQL関数を書いています。これには、クエリの結果の処理が含まれます。ドキュメントのIIRCは、SELECT 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
では、後でストアドプロシージャで使用できるように、クエリの結果を変数に一時的にキャッシュするにはどうすればよいですか?
PG8.4を使用しています。