PostgreSQL:使用不同的参数(相同类型)多次运行函数

时间:2017-10-16 18:55:25

标签: postgresql

我有一个带参数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声明多行时,如何将这些结果放入一个表?

0 个答案:

没有答案