Asp.net 如何在PostgreSQL中返回两个表
我是POSTGRESQL新手,我正在创建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
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;