Aus dem feines Handbuch :
Also array_append
gibt ein Array zurück und Sie müssen diesen Rückgabewert etwas zuweisen. Außerdem denke ich, dass Sie array_to_string
wollen am Ende Ihrer Funktion, nicht array_to_text
. Und primes
ein Array ist, also möchten Sie array_append(primes, mycount)
anstatt zu versuchen, an einen Eintrag in primes
anzuhängen .
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';
Ich weiß nicht, was Sie beabsichtigen mycount := count(primes);
vielleicht wollten Sie sagen mycount := array_length(primes, 1);
sodass Sie eine Folge aufeinanderfolgender Ganzzahlen in primes
erhalten würden .