Ce n'est pas une surprise. Le langage SQL ne supporte pas les variables. Vous devez utiliser le langage plpgsql.
CREATE OR REPLACE FUNCTION clean_emp()
RETURNS void AS $$
DECLARE cnt varchar;
BEGIN
END;
$$ LANGUAGE plpgsql;
Voir plus dans la documentation http://www.postgresql.org/docs/current /static/plpgsql.html .
PostgreSQL a plus de langages pour la fonction d'écriture. Le langage SQL est parfait pour les macros à une seule ligne. Le PLpgSQL est un langage natif classique similaire au PL/SQL d'Oracle avec SQL embarqué.