存储过程 postgresql 中的返回表 [英] Return table in stored procedure postgresql
本文介绍了存储过程 postgresql 中的返回表的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想用存储过程而不是函数
我的代码是:
CREATE OR REPLACE PROCEDURE public.test()
RETURN TABLE (
id numeric
, test varchar
) AS -- Results -- remove this
$func$
BEGIN
RETURN QUERY
SELECT *
FROM public.test
END
$func$ LANGUAGE plpgsql;
但它不起作用.
推荐答案
存储过程并不意味着返回任何东西,而是使用函数.你也不需要 PL/pgSQL:
Stored procedures aren't meant to return anything, use a function. And you don't need PL/pgSQL for that either:
create or replace FUNCTION public.test()
returns TABLE (id numeric, test varchar)
AS
$func$
SELECT *
FROM public.test;
$func$
LANGUAGE sql;
当你返回一张表的所有列时,你也可以使用returns setof
As you return all columns of one table, you can also use returns setof
create or replace FUNCTION public.test()
returns setof public.test
AS
$func$
SELECT *
FROM public.test;
$func$
LANGUAGE sql;
然后像桌子一样使用它:
Then use it like a table:
select *
from test();
这篇关于存储过程 postgresql 中的返回表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文