我有一个带参数uid
的函数并返回一个表。我想添加使用不同的参数多次调用此函数(但是类型相同,VARCHAR(11)
)并将这些结果放在临时表中(所以我可以从中拉出一个CSV)。
我的功能似乎无法正确循环
DROP TABLE IF EXISTS programs_to_analyze;
CREATE TEMP TABLE IF NOT EXISTS programs_to_analyze (
uid VARCHAR(11)
);
INSERT INTO programs_to_analyze(uid)
VALUES ('lUGqq3na2wn');
CREATE OR REPLACE FUNCTION myfunction()
RETURNS TABLE(identifier VARCHAR(11)) AS $BODY$
DECLARE
program programs_to_analyze%ROWTYPE;
BEGIN
FOR program IN
SELECT uid
FROM programs_to_analyze
LOOP
RETURN QUERY SELECT * from some_query(program);
END LOOP;
END;
$BODY$ LANGUAGE plpgsql VOLATILE;
运行select * from myfunction();
时,我会收到0行(预期:测试的18行)。
在programs_to_analyze
声明多行时,如何将这些结果放入一个表?