sql - 存储过程没有数据输出(Postgresql)
问题描述
我有一个 select 语句的基本存储过程。select 语句本身可以工作并向我显示数据输出,但是当我尝试从存储过程中调用它时,它显示“CALL Query 在 107 毫秒内成功返回”,但没有数据输出。我的存储过程中是否缺少某些内容?(我还将 AWS 上的数据库与基本层连接起来,不确定这是否会有所不同。除 select 外,其他所有 CRUD 操作都有效。)
CREATE PROCEDURE
experiment1()
LANGUAGE SQL
AS $$
SELECT * FROM assignment
$$
解决方案
Postgres 过程不返回任何内容。您可以改用函数,使用return query
语法。这需要枚举查询返回的列。假设您的表有两列,id
并且val
,那将是:
create function experiment()
returns table (id int, val text)
as $$
begin
return query select * from assignment;
end;
$$ language plpgsql;
然后,您可以像这样调用这个 set-returning 函数:
select * from experiment();
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 - id 3 的 SQL 查询返回匹配,其中 = 3XW3Z1zD6JEV1600164577
- java - 我的程序显示从 1 到 [用户输入],只是忽略了起始数字输入。有问题的代码是合数一
- c++ - 具有静态字段的对象和全局对象之间是否存在任何低级差异
- mysql - 使用 Node js 模型 MVC 创建 Web 服务器
- api - 使用 api 限制每天在 PowerBi 中添加新数据
- java - 每当有新客户端加入时,Java 服务器都会放弃旧客户端
- apache-kafka - Kafka配置:参数“cleanup.policy”和参数“log.cleanup.policy”有什么区别?
- mulesoft - MuleSoft 4 中的嵌套变量问题
- parquet - 无法使用 Redshift Spectrum 查询镶木地板数据
- python - 按未命名值而不是索引对 Pandas 系列进行排序