Asp.net 如何在PostgreSQL中返回两个表

Asp.net 如何在PostgreSQL中返回两个表,asp.net,postgresql,Asp.net,Postgresql,我是POSTGRESQL新手,我正在创建POSTGRESQL函数,现在我想创建一个返回两个表输出的函数,我创建了,但它不工作 我的职能 CREATE FUNCTION getData() RETURNS setof refcursor AS $$ DECLARE c_top_items refcursor; DECLARE c_shopping_cart refcursor; BEGIN OPEN c_top_items FOR SELECT t.name

我是POSTGRESQL新手,我正在创建POSTGRESQL函数,现在我想创建一个返回两个表输出的函数,我创建了,但它不工作

我的职能

CREATE FUNCTION getData() RETURNS setof refcursor AS
$$
DECLARE c_top_items refcursor;
DECLARE c_shopping_cart refcursor;
BEGIN
    OPEN c_top_items FOR
        SELECT t.name
        FROM employee t
        LIMIT 10;
    RETURN NEXT c_top_items;
    OPEN c_shopping_cart FOR
        SELECT c.name
        FROM employee c
        LIMIT 5;
    RETURN NEXT c_shopping_cart;
END;
$$ LANGUAGE plpgsql;

请帮忙

调用getData时,会得到两个游标,从它们中获取所有游标。我修改了文档中的示例,并使用以下工具获取数据:

select * from getData();

fetch all in "<unnamed portal 1>";
fetch all in "<unnamed portal 2>";

请参阅:

如果RDBMS与您的问题无关,请不要为其添加标签。我已为您删除了冲突标记。在第一次查看时,函数看起来正常。你如何使用它?下面是一些关于它的相关文章-该示例不尝试返回“两个表”,只返回所选行的
name
列。你到底想达到什么目的。请回答问题,并始终提供您的Postgres版本。
CREATE FUNCTION myfunc(refcursor, refcursor) RETURNS SETOF refcursor AS $$
BEGIN
    OPEN $1 FOR SELECT * FROM table_1;
    RETURN NEXT $1;
    OPEN $2 FOR SELECT * FROM table_2;
    RETURN NEXT $2;
END;
$$ LANGUAGE plpgsql;

-- need to be in a transaction to use cursors.
BEGIN;

SELECT * FROM myfunc('a', 'b');

FETCH ALL FROM a;
FETCH ALL FROM b;
COMMIT;