驚くことではありません。言語SQLは変数をサポートしていません。言語plpgsqlを使用する必要があります。
CREATE OR REPLACE FUNCTION clean_emp()
RETURNS void AS $$
DECLARE cnt varchar;
BEGIN
END;
$$ LANGUAGE plpgsql;
詳細については、ドキュメントhttp://www.postgresql.org/docs/currentを参照してください。 /static/plpgsql.html 。
PostgreSQLには、関数を作成するためのより多くの言語があります。 SQL言語は、1行の単一ステートメントマクロに最適です。 PLpgSQLは、SQLが埋め込まれたOracleのPL/SQLに似た古典的な母国語です。