Postgresql 从获取所有行创建视图(调用返回光标的函数)
在postgreSQL中,我成功地创建了一个函数,该函数返回一个refcursor,在第二步中,所有行都可以被提取 我想用函数返回的记录创建一个视图,但我不知道如何实现(如果有的话),因为Postgresql 从获取所有行创建视图(调用返回光标的函数),postgresql,Postgresql,在postgreSQL中,我成功地创建了一个函数,该函数返回一个refcursor,在第二步中,所有行都可以被提取 我想用函数返回的记录创建一个视图,但我不知道如何实现(如果有的话),因为SELECT语句只返回光标,而不返回记录。需要使用fetch ALL FROM获取这些文件 这就是功能(基本上是对中所述内容的修改): 我通过执行以下命令获取数据: BEGIN; SELECT do_cross_cursor(); FETCH ALL FROM result; END; 有一种方法可以让从结果
SELECT
语句只返回光标,而不返回记录。需要使用fetch ALL FROM
获取这些文件
这就是功能(基本上是对中所述内容的修改):
我通过执行以下命令获取数据:
BEGIN;
SELECT do_cross_cursor();
FETCH ALL FROM result;
END;
有一种方法可以让
从结果中获取所有信息代码>流到视图中?回答您的问题:否。视图需要定义所有列,您不能将“获取”放入视图定义中。但你可以解决这个问题。smth类似:
select DISTINCT
pk, jahrmonat,count(1) over (partition by pk,jahrmonat), SUM(wert_monat_kum) AS Total
FROM susa2
应该在垂直方向上为您提供相同的数据,因此您可以交叉表
将其转换为您的数据集。回答您的问题:否。视图需要定义所有列,并且您不能将fetch放在视图定义中。但你可以解决这个问题。smth类似:
select DISTINCT
pk, jahrmonat,count(1) over (partition by pk,jahrmonat), SUM(wert_monat_kum) AS Total
FROM susa2
应该在垂直方向上给您相同的数据,所以您可以交叉表
将其转换为数据集。我很高兴您不能这样做。结果视图的列数是可变的/动态的,基于“交叉”的内容和表中特定交叉字段的数据,因此从本质上讲,结果数据集具有动态模式。对于光标来说很好,而对于视图来说则不然。我很高兴你不能这么做。结果视图的列数是可变的/动态的,基于“交叉”的内容和表中特定交叉字段的数据,因此从本质上讲,结果数据集具有动态模式。对于光标来说很好,而对于视图来说则不然。谢谢你的回答。我以前一直试图通过交叉表
来实现我想要的结果,但同样的问题是,数据透视列的数量是动态的。也许我得稍微考虑一下我的应用程序/sql设计。谢谢你的回答。我以前一直试图通过交叉表
来实现我想要的结果,但同样的问题是,数据透视列的数量是动态的。也许我必须稍微考虑一下我的应用程序/sql设计。