【发布时间】:2021-01-29 13:31:04
【问题描述】:
我正在使用 Postgres 版本 13.1。我想要一个文件,我可以在其中存储所有存储过程并一次性创建它们。但是当我将多个存储过程放在一个文件中时,出现以下错误。我错过了什么?
在我的 test.sql 文件中,我有以下内容:
create or replace procedure tmp1(
)
language plpgsql as
$$
declare
l_count integer;
begin
select 1 into l_count;
raise info 'count: %', l_count;
end;
$$
create or replace procedure tmp2(
)
language plpgsql as
$$
declare
l_count integer;
begin
select 1 into l_count;
raise info 'count: %', l_count;
end;
$$
如果我只创建了第一个过程并且我可以成功调用它。但是,当我有第二个具有不同名称的相同过程时,它给了我如下错误(从 psql 运行时):
psql=> \i test.sql
psql:test.sql:23: ERROR: syntax error at or near "create"
LINE 12: create or replace procedure tmp2(
【问题讨论】:
-
分号应该在整个
create procedure/function语句之后(与脚本中的任何其他语句一样),并且在正文的末尾没有必要:create function ... as $$ begin ...end $$;
标签: postgresql stored-procedures