【发布时间】:2014-12-28 01:11:35
【问题描述】:
我正在尝试使用返回表的 PL/pgSQL (PostgreSQL 9.3) 函数编写一个循环。我在循环中的每个查询之后使用了不带参数的RETURN NEXT;,遵循plpgsql error "RETURN NEXT cannot have a parameter in function with OUT parameters" in table-returning function 和其他地方的示例。但是,我仍然收到一条错误消息:
ERROR: query has no destination for result data
HINT: If you want to discard the results of a SELECT, use PERFORM instead.
重现问题的最小代码示例如下。谁能帮忙解释一下如何修复测试代码以返回一个表?
提前致谢。
小例子:
CREATE OR REPLACE FUNCTION test0()
RETURNS TABLE(y integer, result text) AS $func$
DECLARE
yr RECORD;
BEGIN
FOR yr IN SELECT * FROM generate_series(1,10,1) AS y_(y)
LOOP
RAISE NOTICE 'Computing %', yr.y;
SELECT yr.y, 'hi';
RETURN NEXT;
END LOOP;
RETURN;
END
$func$ LANGUAGE plpgsql;
【问题讨论】:
标签: postgresql plpgsql