POSTGRES:选择从函数返回的引用的查询
Posted
技术标签:
【中文标题】POSTGRES:选择从函数返回的引用的查询【英文标题】:POSTGRES: Select query on a refcursor returned from a function 【发布时间】:2014-10-02 22:06:32 【问题描述】:我有一个 POSTGRES 函数,它返回一个 refcursor 作为输出。打印 refcursor 会显示类似这样的输出:
A B
==========
1 dog
2 cat
3 tiger
我的问题是:
我怎样才能在这个 refcursor 之上执行查询? 比如:
select A from (function_returning_refcursor());
【问题讨论】:
is this relevant? @gloomy.penguin 该链接是否建议单独创建一个类型并返回它而不是 refcursor?如果是这样,我不想那样做。 这非常不清楚。每个 refcursor 的查询是什么?你期望“A”是什么?你期望什么输出? 我已经把上面refcursor的内容贴出来了。假设 refcursor 由一个初始查询填充,该查询在联合之后从几个表中选择了所有内容。输出看起来像上面那样。现在,我尝试从上面的输出中只选择一个特定的列,即 A。A 的值已显示为整数。 【参考方案1】:您将需要另一个函数,该函数使用 refcursor
并对光标内容执行任何您想要的操作。例如:
select f2(curs) from function_returning_refcursor() curs;
【讨论】:
感谢您的回复。你能告诉我函数 f2 将如何对 ref 游标进行查询吗?这基本上是我不明白的,是我的问题。 @M10TheMist PL/PgSQL 文档涵盖了从游标获取:postgresql.org/docs/current/static/plpgsql-cursors.html。注意你也可以FETCH
SQL级别的结果:postgresql.org/docs/current/static/sql-fetch.html以上是关于POSTGRES:选择从函数返回的引用的查询的主要内容,如果未能解决你的问题,请参考以下文章
如何插入选择查询的结果(如果不返回任何行则默认)作为 Postgres 函数的一部分?