我花了很多时间试图解决它,但我无法解决它.所以,我需要你的帮助.
我正在尝试编写一个返回多行的PL / pgsql函数.我写的函数如下所示.但它没有用.
CREATE OR REPLACE FUNCTION get_object_fields() RETURNS SetoF RECORD AS $$ DECLARE result_record keyMetrics; BEGIN return QUERY SELECT department_id into result_record.visits from fact_department_daily where report_date='2013-06-07'; --return result_record; END $$LANGUAGE plpgsql; SELECT * FROM get_object_fields;
它返回此错误:
ERROR: RETURN cannot have a parameter in function returning set;
use RETURN NEXT at or near “QUERY”
解决方法
我看到更多的错误:
首先,SET RETURNING FUNCTIONS调用具有以下语法
SELECT * FROM get_object_fields()
second – RETURN QUERY将查询结果直接转发给输出.你不能将这个结果存储到变量中 – 现在在Postgresql中是不可能的.
BEGIN RETURN QUERY SELECT ....; -- result is forwarded to output directly RETURN; -- there will not be any next result,finish execution END;
CREATE OR REPLACE FUNCTION get_object_fields() RETURNS SetoF RECORD AS $$ SELECT department_id WHERE ... $$LANGUAGE sql STABLE;
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。