Вот код
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);
array_append(primes [counter], mycount);
counter := counter - 1;
END LOOP;
RETURN array_to_text(primes[], ',');
END;
$$
LANGUAGE 'plpgsql'
Это я разрабатываю начало простой производящей функции.Я пытаюсь просто заставить его вернуть «количество» массива.Поэтому, если я передам '7' в функцию, я должен получить обратно [0, 1, 2, 3, 4, 5, 6].
Но когда я пытаюсь создать эту функцию, я получаю
SQL Error: ERROR: syntax error at or near "array_append" LINE 1: array_append( $1 [ $2 ], $3 )
^ QUERY: array_append( $1 [ $2 ], $3 ) CONTEXT: SQL statement in PL/PgSQL function "primes" near line 8
Я новичок с функциями postgres.Я не понимаю, почему я не могу заставить этот массив работать должным образом.
Опять же, все, что я хочу, это просто правильно заполнить этот массив с помощью "текущего" счетчика массива.(Это больше, чтобы просто помочь мне понять, что он действительно делает цикл правильно и считает его правильно).
Спасибо за вашу помощь.