我有一个函数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/