Från den fina manualen :
Så array_append
returnerar en array och du måste tilldela det returvärdet till något. Jag tror också att du vill ha array_to_string
i slutet av din funktion, inte array_to_text
. Och primes
är en array så du vill ha array_append(primes, mycount)
istället för att försöka lägga till en post i 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';
Jag vet inte vad du tänker mycount := count(primes);
att göra, kanske du menade att säga mycount := array_length(primes, 1);
så att du skulle få en sekvens av på varandra följande heltal i primes
.