我对 postgres 很陌生。尝试运行以下脚本时出现此错误:
CREATE OR REPLACE FUNCTION xyz(text) RETURNS INTEGER AS
'DECLARE result int;
BEGIN
SELECT count(*) into result from tbldealercommissions
WHERE
txtdealercode = $1;
if result < 1 then returns 1;
else returns 2 ;
end if;
END;
'
LANGUAGE sql VOLATILE;
错误是
ERROR: syntax error at or near "int"
LINE 3: 'DECLARE result int;
不确定是什么原因导致此错误。感谢您的帮助。
最佳答案
这是不合适的:
LANGUAGE sql
改用这个:
LANGUAGE plpgsql
您尝试使用的语法不是纯 SQL 语言,而是过程 PL/pgSQL 语言。在 PostgreSQL 中,您可以安装不同的语言,而 PL/pgSQL 在这方面只是 primus inter pares。这也意味着您可能会收到错误消息,即未安装此语言。在那种情况下使用
CREATE LANGUAGE plpgsql;
激活它。根据 PostgreSQL 的版本,您可能需要 super 用户权限才能执行此步骤。
玩得开心。
关于postgresql - 创建函数时 postgres error syntax error at or near "int",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7674031/