我有一个函数some_func()返回refcursor:

CREATE OR REPLACE FUNCTION some_func() RETURNS refcursor AS (...)

我想从控制台调用此函数,并从它返回的游标中显示结果集。在Oracle中,我会写:
SELECT * FROM TABLE(some_func());

在PosgreSQL上的构造相当于什么?

最佳答案

refcursor由其名称引用,该名称可以自动生成,也可以由您选择。
这个page of the doc给出了每个示例。

要从refcursor获取结果,您必须具有游标的名称。如果是生成的名称,则类似于<unnamed portal 1>"。然后,您可以:

FETCH ALL FROM "<unnamed portal 1>";

游标名称从函数中返回,作为refcursor结果,因此您可以从那里获取它。

关于postgresql - 如何从PL/pgSQL函数返回的refcursor中选择所有行?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11135815/

10-11 05:52