运行 postgresql function/stored 过程时的语法错误

syntax error when running postgresql function/stored procedure

尝试使用函数执行一组复杂的 Postgresql 数据库操作,但即使是简单的函数也会出错:

ERROR:  syntax error at or near "text"
LINE 3:    tmp text := info;
               ^

这里是SQL

CREATE or REPLACE FUNCTION createme (info text) RETURNS text AS $$
DECLARE 
   tmp text := info;
BEGIN
   select :tmp
end
$$ LANGUAGE SQL;

知道为什么吗?谢谢!

您的程序不是SQL语言,而是plpgsql语言。

CREATE or REPLACE FUNCTION createme (info text) RETURNS text AS $$
DECLARE 
  tmp text := info;
BEGIN
  RETURN tmp;
end
$$ LANGUAGE plpgsql;

SELECT :tmp这段内容是废话。功能 returns 一个值与命令 RETURN - 它类似于任何其他环境。