暂无图片
入门者求解|postgresql里的存储过程(是procedure不是function)如何返回一个数据集? 我如下这样写的话会报错.
我来答
分享
樱桃小丸子
2021-07-07
入门者求解|postgresql里的存储过程(是procedure不是function)如何返回一个数据集? 我如下这样写的话会报错.

入门者求解|postgresql里的存储过程(是procedure不是function)如何返回一个数据集?
我如下这样写的话会报错.企业微信截图_20210707131012.png

我来答
添加附件
收藏
分享
问题补充
2条回答
默认
最新
王也

CREATE OR REPLACE FUNCTION getCostAndVm (datacenterid INTEGER)
RETURNS TABLE (
t1 INT4,
PoweredOffVM BIGINT,
PoweredOnVM BIGINT,
Svm BIGINT,
llvm BIGINT,
zvm BIGINT
)
AS $$
BEGIN
RETURN QUERY
select
team as t1,
COUNT(CASE WHEN vi.state = ‘Off’ THEN 1 ELSE NULL END) as “PoweredOffVM”,
COUNT(CASE WHEN vi.state = ‘On’ THEN 1 ELSE NULL END) as “PoweredOnVM”,
COUNT(CASE WHEN vi.state = ‘Suspended’ THEN 1 ELSE NULL END) as “Svm”,
COUNT(CASE WHEN vi.up_time > ‘1 month’::interval THEN 1 ELSE NULL END) as “llvm”,
COUNT(CASE WHEN vi.off_interval > ‘60 days’::interval THEN 1 ELSE NULL END) as “zvm”
from dashboard_vm_instance_withteam vi
where vi.datacenter_id=datacenterid
group by datacenter_id ,t1;
END
$$ LANGUAGE ‘plpgsql’;

暂无图片 评论
暂无图片 有用 0
高云龙

返回结果集的是函数,不反回结果集的是存储过程

暂无图片 评论
暂无图片 有用 0
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏