sql >> Base de Datos >  >> RDS >> PostgreSQL

usar Array_append me da un error de sintaxis al crear la función PostgreSQL

Del buen manual :

Entonces array_append devuelve una matriz y necesita asignar ese valor de retorno a algo. Además, creo que quieres array_to_string al final de su función, no array_to_text . Y primes es una matriz, por lo que desea array_append(primes, mycount) en lugar de intentar agregar a una entrada en 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';

No sé lo que pretendes mycount := count(primes); hacer, quizás quisiste decir mycount := array_length(primes, 1); para que obtenga una secuencia de enteros consecutivos en primes .