运行PostgreSQL函数/存储过程时的语法错误



试图通过使用函数执行一组复杂的PostgreSQL DB操作,但是即使是一个简单的函数也会引起我的错误:

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;

知道为什么吗?thx!

您的过程不使用SQL语言,而是使用PLPGSQL语言。

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

SELECT :tmp在此内容中是胡说八道。功能返回使用命令RETURN的值 - 它与任何其他环境都相似。

最新更新