Z dobré příručky :
Takže array_append
vrací pole a musíte tuto návratovou hodnotu něčemu přiřadit. Také si myslím, že chcete array_to_string
na konci vaší funkce, nikoli array_to_text
. A primes
je pole, takže chcete array_append(primes, mycount)
místo pokusu o připojení k záznamu v 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';
Nevím, co máte v úmyslu mycount := count(primes);
možná jste chtěli říct mycount := array_length(primes, 1);
takže byste dostali posloupnost po sobě jdoucích celých čísel v primes
.