Kru*_*dya 2 postgresql stored-procedures
我想用存储过程而不是函数返回整个表
我的代码是:
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;
Run Code Online (Sandbox Code Playgroud)
但它不起作用。
小智 9
存储过程并不意味着返回任何内容,而是使用函数。并且您也不需要 PL/pgSQL:
create or replace FUNCTION public.test()
returns TABLE (id numeric, test varchar)
AS
$func$
SELECT *
FROM public.test;
$func$
LANGUAGE sql;
Run Code Online (Sandbox Code Playgroud)
当您返回一个表的所有列时,您还可以使用returns setof
create or replace FUNCTION public.test()
returns setof public.test
AS
$func$
SELECT *
FROM public.test;
$func$
LANGUAGE sql;
Run Code Online (Sandbox Code Playgroud)
然后像表格一样使用它:
select *
from test();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
24232 次 |
| 最近记录: |