Postgresql 无法创建PG sql函数

Postgresql 无法创建PG sql函数,postgresql,Postgresql,我想在Posgresql中创建一个函数,返回一个表: create or replace function my_func1(var1 integer, var2 integer[], var3 integer) returns table(col1 integer, col2 integer, col3 timestamp) as begin select ......... end; language sql; 它说: ERROR: syntax error at o

我想在Posgresql中创建一个函数,返回一个表:

create or replace function my_func1(var1 integer, var2 integer[], var3 integer)
  returns table(col1 integer, col2 integer, col3 timestamp) 
as

begin

    select  .........
end;
language sql;
它说:

ERROR:  syntax error at or near "begin"

中没有
begin
。你的意思是创造一个新的世界吗

然后改用
语言plpgsql

并用引号将函数体括起来,无论哪种方式,它都是文本-最好是美元引号:


    • 在一个数据库中没有
      开始
      。你的意思是创造一个新的世界吗

      然后改用
      语言plpgsql

      并用引号将函数体括起来,无论哪种方式,它都是文本-最好是美元引号:

      试试这个:

      create or replace function my_func1(var1 integer, var2 integer[], var3 integer)
      returns table(col1 integer, col2 integer, col3 timestamp) 
      as
      $func$
      begin
          return query 
          select  .........
      end;
      $func$
      language plpgsql;
      
      试试这个:

      create or replace function my_func1(var1 integer, var2 integer[], var3 integer)
      returns table(col1 integer, col2 integer, col3 timestamp) 
      as
      $func$
      begin
          return query 
          select  .........
      end;
      $func$
      language plpgsql;
      

      我应该将“$func$”放在函数末尾的什么位置:在
      语言plpgsql之前或之后?@Torito:请参见手册中的示例。还有一匹没有名字的马,我不需要。@Torito:那你为什么问“我应该把……放在哪里?”?这在手册中得到了明确的回答。@Torito:我给你的链接中显示了这一点。但是如果你不想读手册,至少读一下欧文的链接答案。他详细地解释了这是什么以及如何使用它。我应该在函数末尾的哪个位置放置“$func$”:在
      语言plpgsql之前还是之后?@Torito:请参见手册中的示例。还有一匹没有名字的马,我不需要。@Torito:那你为什么问“我应该把……放在哪里?”?这在手册中得到了明确的回答。@Torito:我给你的链接中显示了这一点。但是如果你不想读手册,至少读一下欧文的链接答案。他详细解释了那是什么以及如何使用它