Uit de fijne handleiding :
Dus array_append
retourneert een array en u moet die retourwaarde ergens aan toewijzen. Ik denk ook dat je array_to_string
. wilt aan het einde van uw functie, niet array_to_text
. En primes
is een array, dus je wilt array_append(primes, mycount)
in plaats van te proberen toe te voegen aan een item in 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';
Ik weet niet wat je van plan bent mycount := count(primes);
te doen, misschien bedoelde je te zeggen mycount := array_length(primes, 1);
zodat je een reeks opeenvolgende gehele getallen krijgt in primes
.