Stored procedures Postgres 11存储过程不返回结果
在Postgres 11中,存储过程是否不打算返回结果集?因为当我们运行下面的程序时,它说它运行成功了,但是没有返回任何结果Stored procedures Postgres 11存储过程不返回结果,stored-procedures,postgresql-11,Stored Procedures,Postgresql 11,在Postgres 11中,存储过程是否不打算返回结果集?因为当我们运行下面的程序时,它说它运行成功了,但是没有返回任何结果 CREATE OR REPLACE PROCEDURE test() LANGUAGE sql AS $$ SELECT * from aTable; $$; call test(); Postgresql过程最多只能返回一个值: CREATE PROCEDURE test (INOUT x int) LANGUAGE sql AS $$ SELECT x
CREATE OR REPLACE PROCEDURE test()
LANGUAGE sql
AS $$
SELECT * from aTable;
$$;
call test();
Postgresql过程最多只能返回一个值:
CREATE PROCEDURE test (INOUT x int)
LANGUAGE sql
AS $$
SELECT x;
$$;
# call test (1);
x
---
1
(1 row)
Postgresql功能更加灵活:
create or replace function test()
RETURNS setof atable
language sql
as $$
select * from atable;
$$;
过程的优点是它们可以控制事务。如果您不需要它,则最好使用函数。如果您想返回结果,请使用函数。