death_nemesis
te explico mas o menos como afrontar el problema, ya que lo que tratas de hacer no se puede.
Debes recurrir a los cursores y en vez de recorrer en un for las posiciones del vector, debes recorrer el cursor y usar cada valor.
sería algo así:
Código SQL:
Ver originalCREATE OR REPLACE FUNCTION ejemplo()
RETURNS text AS
$BODY$
DECLARE
cur CURSOR FOR SELECT campo FROM tabla;
BEGIN
OPEN cur;
WHILE found LOOP
FETCH cur INTO variable;
SELECT COUNT(*) FROM tabla WHERE valor=variable;
END LOOP;
CLOSE cur;
RETURN 'listo';
END;
$BODY$
LANGUAGE 'plpgsql' VOLATILE
revisa bien la documentación de cursores.
espero haberte ayudado