Ecco il codiceutilizzando Array_append mi dà errore di sintassi durante la creazione di funzioni di PostgreSQL
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'
Questo mi sta sviluppando l'inizio di una funzione generatrice primaria. Sto cercando di ottenere semplicemente il "conteggio" dell'array. Quindi se passo '7' nella funzione dovrei tornare indietro [0, 1, 2, 3, 4, 5, 6].
Ma quando cerco di creare questa funzione ottengo
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
Sono un novizio con funzioni di Postgres. Non sto capendo perché non riesco a far funzionare correttamente questo array.
Ancora tutto quello che voglio è riempire questo array correttamente con il conteggio "corrente" dell'array. (È più semplicemente per aiutarmi a capire che in effetti sta facendo il ciclo correttamente e lo sta contando correttamente).
Grazie per il vostro aiuto.
Perché stai utilizzando un database per generare Primes?!? –
Suppongo che tu stia facendo solo questo per imparare PL/SQL - Penso che SO sarebbe un posto più appropriato per questa domanda. – MikeyB
Sì, lo sto solo facendo per imparare. – StanM