動的なデータ型のセットを返す関数を作成しようとしています。データ型はすべて事前に作成されており、4番目の変数として呼び出すことができます。
CREATE OR REPLACE FUNCTION gethistoryrecord(text, text, text, text)
RETURNS setof $4 AS
$BODY$
declare
r record;
begin
for r in EXECUTE 'SELECT * FROM ' || $1 || ' where ref_id = ' || $2 || ' and create_date < ' || quote_literal($3) || '::timestamp and (archive_date is null or archive_date >= ' || quote_literal($3) || '::timestamp)' loop
return next r;
end loop;
return;
end
$BODY$
LANGUAGE plpgsql;
次のような関数を呼び出します
select * from gethistoryrecord('view_all_history','3540','2012-08-21 17:43:39.855852','holder_name')
出力を宣言する必要がなく、エラーが発生しない可能性はありますか?
「レコード」を返す関数には列定義リストが必要です