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。注意你也可以FETCHSQL级别的结果:postgresql.org/docs/current/static/sql-fetch.html

以上是关于POSTGRES:选择从函数返回的引用的查询的主要内容,如果未能解决你的问题,请参考以下文章