【发布时间】:2021-10-16 17:28:47
【问题描述】:
我已经使用 PGADMIN4 创建了一个存储过程。在 SP 内部,我选择了一个视图表。但是,我希望将存储过程中的数据插入到新表中。我试过下面的代码,但它显示一个错误:
SP 名称:测试
新表名:Customer
Insert into public.Customer exec public.Test
这是我的 SP 代码:
create procedure test()
language plpgsql
as $$
BEGIN
Select * from public.customer_list;
END;
$$;
错误:“exec”处或附近的语法错误
【问题讨论】:
-
将您的过程转换为返回表格的函数。过程并不意味着返回结果集
-
@AdrianKlaver 我已经添加了我的 sp 代码
-
你需要一个函数而不是一个过程。对于这种情况,最简单的方法是
RETURN QUERY,请参阅此处Returning 43.6.1.2。 RETURN NEXT 和 RETURN QUERY 并查看示例。然后像Insert into public.Customer select * from public.test();.
标签: postgresql stored-procedures