创建函数时,在"int"或其附近的postgres错误语法错误

Shi*_*ver 4 postgresql

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;
Run Code Online (Sandbox Code Playgroud)

错误是

ERROR:  syntax error at or near "int"
LINE 3: 'DECLARE result int;
Run Code Online (Sandbox Code Playgroud)

不确定导致此错误的原因.任何帮助表示赞赏.

A.H*_*.H. 9

这不合适:

LANGUAGE sql
Run Code Online (Sandbox Code Playgroud)

改用它:

LANGUAGE plpgsql
Run Code Online (Sandbox Code Playgroud)

您尝试使用的语法不是纯SQL语言,而是程序PL/pgSQL语言.在PostgreSQL中,你可以安装不同的语言,而PL/pgSQL在这方面只是一个小问题.这也意味着您可能会收到错误消息,即未安装此语言.在那种情况下使用

CREATE LANGUAGE plpgsql;
Run Code Online (Sandbox Code Playgroud)

它激活了它.根据PostgreSQL的版本,您可能需要超级用户权限才能执行此步骤.

玩得开心.