无法创建PG sql函数

时间:2017-02-06 05:44:48

标签: 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 or near "begin"

2 个答案:

答案 0 :(得分:2)

SQL function中没有begin。您的意思是创建plpgsql function吗?

然后使用LANGUAGE plpgsql代替 并将函数体用引号括起来,它是文本 - 最好是美元引号:

答案 1 :(得分:1)

试试这个:

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;