gpt4 book ai didi

postgresql - 来自 PostgreSQL 存储过程的多个结果集

转载 作者:行者123 更新时间:2023-11-29 13:38:51 26 4
gpt4 key购买 nike

从函数中得到意想不到的结果。我只需要两个我在函数中编写的代码的结果集,但却遇到了一些未命名的门户问题。

我试过同样使用游标。如下所示。

CREATE OR REPLACE FUNCTION User(param_state CHAR(10)) RETURNS SETOF refcursor AS $$
DECLARE
ref1 refcursor; -- Declare cursor variables
ref2 refcursor;
BEGIN
OPEN ref1 FOR select * from Table1
WHERE code = param_state;
RETURN NEXT ref1;

OPEN ref2 FOR select * from Table2
WHERE code= param_state;

RETURN NEXT ref2;

END;
$$ LANGUAGE plpgsql;

预期输出应该是 2 个结果集,每个结果集有 2 列

-------------------
|party_code | limit|
|------------------|
|T001 | 120 |
-------------------

-------------------
|party_code | Sal |
|------------------|
|T001 | 1000 |
-------------------

但是输出是

---------------------
|<unnamed portal 34>|
---------------------
|<unnamed portal 35>|

最佳答案

你试过给你的游标命名吗..

...
DECLARE
ref1 refcursor := 'mycursor1' ;
ref2 refcursor := 'mycursor2' ;
...

.. 并使用他们的名字获取结果..

SELECT * FROM "User"('T001');

BEGIN;
FETCH ALL FROM mycursor2;
FETCH ALL FROM mycursor1;
END;


FETCH ALL FROM mycursor2;
code | Sal
------+------
T001 | 1000
(1 row)

postgres=# FETCH ALL FROM mycursor1;
code | limit
------+-------
T001 | 120
(1 row)

关于postgresql - 来自 PostgreSQL 存储过程的多个结果集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58518919/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com