postgresql – 如何从PL / pgSQL函数返回多行?
发布时间:2020-12-13 15:51:20 所属栏目:百科 来源:网络整理
导读:我花了很多时间试图解决它,但我无法解决它.所以,我需要你的帮助. 我正在尝试编写一个返回多行的PL / pgSQL函数.我写的函数如下所示.但它没有用. CREATE OR REPLACE FUNCTION get_object_fields()RETURNS SETOF RECORDAS $$DECLARE result_record keyMetrics;
我花了很多时间试图解决它,但我无法解决它.所以,我需要你的帮助.
我正在尝试编写一个返回多行的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; 它返回此错误:
解决方法
我看到更多的错误:
首先,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; 第三 – 这些简单的函数最好用SQL语言实现 CREATE OR REPLACE FUNCTION get_object_fields() RETURNS SETOF RECORD AS $$ SELECT department_id WHERE ... $$LANGUAGE sql STABLE; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |