【问题标题】:Postgres: syntax error when trying to create multiple stored procedures from a single filePostgres:尝试从单个文件创建多个存储过程时出现语法错误
【发布时间】: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


【解决方案1】:

好的 - 发布后我尝试输入“;”在第一个程序结束后,它就可以工作了

【讨论】:

    猜你喜欢
    • 2013-05-12
    • 1970-01-01
    • 2019-10-19
    • 1970-01-01
    • 2010-10-12
    • 1970-01-01
    • 2021-08-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多