À partir du manuel fin :
Donc array_append
renvoie un tableau et vous devez affecter cette valeur de retour à quelque chose. Aussi, je pense que vous voulez array_to_string
à la fin de votre fonction, pas array_to_text
. Et primes
est un tableau donc vous voulez array_append(primes, mycount)
plutôt que d'essayer d'ajouter à une entrée dans 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';
Je ne sais pas ce que vous voulez dire mycount := count(primes);
à faire, peut-être vouliez-vous dire mycount := array_length(primes, 1);
de sorte que vous obtiendriez une séquence d'entiers consécutifs en primes
.