sql >> Databasteknik >  >> RDS >> PostgreSQL

att använda Array_append ger mig syntaxfel när jag skapar PostgreSQL-funktion

Från den fina manualen :

array_append returnerar en array och du måste tilldela det returvärdet till något. Jag tror också att du vill ha array_to_string i slutet av din funktion, inte array_to_text . Och primes är en array så du vill ha array_append(primes, mycount) istället för att försöka lägga till en post i 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';

Jag vet inte vad du tänker mycount := count(primes); att göra, kanske du menade att säga mycount := array_length(primes, 1); så att du skulle få en sekvens av på varandra följande heltal i primes .




  1. Anpassade formatsträngar för datum/tid som stöds av FORMAT() i SQL Server

  2. Hur använder man en Oracle Ref Cursor från C# ODP.NET som en ReturnValue-parameter, utan att använda en lagrad funktion eller procedur?

  3. 15 Användbara MySQL/MariaDB-prestandajusteringar och optimeringstips

  4. hur mysql update self table fungerar