我正在尝试编写一个返回多行的PL / pgsql函数.我写的函数如下所示.但它没有用.
CREATE OR REPLACE FUNCTION get_object_fIElds()RETURNS SetoF RECORDAS $$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 executionEND;
第三 – 这些简单的函数最好用sql语言实现
CREATE OR REPLACE FUNCTION get_object_fIElds()RETURNS SetoF RECORD AS $$SELECT department_ID WHERE ...$$LANGUAGE sql Stable;总结
以上是内存溢出为你收集整理的postgresql – 如何从PL / pgSQL函数返回多行?全部内容,希望文章能够帮你解决postgresql – 如何从PL / pgSQL函数返回多行?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)