gpt4 book ai didi

sql - 存储过程没有数据输出(Postgresql)

转载 作者:行者123 更新时间:2023-12-04 09:36:24 25 4
gpt4 key购买 nike

我有一个用于 select 语句的基本存储过程。 select 语句本身有效并向我显示数据输出,但是当我尝试从存储过程调用它时,它显示“CALL Query 在 107 毫秒内成功返回”,但没有数据输出。我的存储过程中是否缺少某些内容?
(我还将 AWS 上的数据库与基本层连接,不确定这是否有所不同。除选择外,其他所有 CRUD 操作都有效。)

CREATE PROCEDURE 
experiment1()
LANGUAGE SQL
AS $$
SELECT * FROM assignment
$$

最佳答案

Postgres 过程不返回任何内容。您可以使用函数代替 return query句法。这需要枚举查询返回的列。假设您的表有两列,idval ,那就是:

create function experiment() 
returns table (id int, val text)
as $$
begin
return query select * from assignment;
end;
$$ language plpgsql;
然后你可以像这样调用这个返回集合的函数:
select * from experiment();
Demo on DB Fiddle :
create table assignment (id int, val text);
insert into assignment values(1, 'foo'), (2, 'bar');
-- 2 rows affected

create function experiment()
returns table (id int, val text)
as $$
begin
return query select * from assignment;
end;
$$ language plpgsql;

select * from experiment();
身份证 |值
-: | :--
1 |富
2 |酒吧

关于sql - 存储过程没有数据输出(Postgresql),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62565235/

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