Vì vậy, array_append
trả về một mảng và bạn cần gán giá trị trả về đó cho một thứ gì đó. Ngoài ra, tôi nghĩ bạn muốn array_to_string
ở cuối hàm của bạn, không phải array_to_text
. Và primes
là một mảng, vì vậy bạn muốn array_append(primes, mycount)
thay vì cố gắng nối vào một mục trong 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';
Tôi không biết bạn định làm gì mycount := count(primes);
để làm, có lẽ bạn muốn nói mycount := array_length(primes, 1);
để bạn nhận được một chuỗi các số nguyên liên tiếp dưới dạng primes
.