Mic*_*ael 2 stored-procedures postgresql-11
在 Postgres 11 中,存储过程不打算返回结果集吗?因为当我们运行以下命令时,它说运行成功,但没有返回结果。
CREATE OR REPLACE PROCEDURE test()
LANGUAGE sql
AS $$
SELECT * from aTable;
$$;
call test();
Run Code Online (Sandbox Code Playgroud)
Postgresql 过程最多可以返回一个值:
CREATE PROCEDURE test (INOUT x int)
LANGUAGE sql
AS $$
SELECT x;
$$;
# call test (1);
x
---
1
(1 row)
Run Code Online (Sandbox Code Playgroud)
Postgresql函数更加灵活:
create or replace function test()
RETURNS setof atable
language sql
as $$
select * from atable;
$$;
Run Code Online (Sandbox Code Playgroud)
过程的优点是可以控制事务。如果您不需要它,那么使用函数可能会更好。
| 归档时间: |
|
| 查看次数: |
1808 次 |
| 最近记录: |