sql >> Database >  >> RDS >> PostgreSQL

het gebruik van Array_append geeft me een syntaxisfout bij het maken van de PostgreSQL-functie

Uit de fijne handleiding :

Dus array_append retourneert een array en u moet die retourwaarde ergens aan toewijzen. Ik denk ook dat je array_to_string . wilt aan het einde van uw functie, niet array_to_text . En primes is een array, dus je wilt array_append(primes, mycount) in plaats van te proberen toe te voegen aan een item in 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';

Ik weet niet wat je van plan bent mycount := count(primes); te doen, misschien bedoelde je te zeggen mycount := array_length(primes, 1); zodat je een reeks opeenvolgende gehele getallen krijgt in primes .




  1. Records met maximale waarde ophalen voor elke groep gegroepeerde SQL-resultaten

  2. MaxScale Basic Management MaxCtrl gebruiken voor MariaDB Cluster

  3. Databasefout opgetreden Foutnummer:1062

  4. ElasticSearch automatisch synchroniseren met SQL