Del buen manual :
Entonces array_append
devuelve una matriz y necesita asignar ese valor de retorno a algo. Además, creo que quieres array_to_string
al final de su función, no array_to_text
. Y primes
es una matriz, por lo que desea array_append(primes, mycount)
en lugar de intentar agregar a una entrada en primes
.
CREATE OR REPLACE FUNCTION primes (IN integer) RETURNS TEXT AS $$
DECLARE
counter INTEGER = $1;
primes int [];
mycount int;
BEGIN
WHILE counter != 0 LOOP
mycount := count(primes);
primes := array_append(primes, mycount);
counter := counter - 1;
END LOOP;
RETURN array_to_string(primes, ',');
END;
$$ LANGUAGE 'plpgsql';
No sé lo que pretendes mycount := count(primes);
hacer, quizás quisiste decir mycount := array_length(primes, 1);
para que obtenga una secuencia de enteros consecutivos en primes
.