Dari manual bagus :
Jadi array_append
mengembalikan array dan Anda perlu menetapkan nilai pengembalian itu ke sesuatu. Juga, saya pikir Anda ingin array_to_string
di akhir fungsi Anda, bukan array_to_text
. Dan primes
adalah array sehingga Anda ingin array_append(primes, mycount)
daripada mencoba menambahkan entri di 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';
Saya tidak tahu apa yang Anda maksudkan mycount := count(primes);
yang harus dilakukan, mungkin Anda bermaksud mengatakan mycount := array_length(primes, 1);
sehingga Anda akan mendapatkan urutan bilangan bulat berturut-turut dalam primes
.