Oto kodużyciu Array_append daje mi błąd składni podczas tworzenia funkcji 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'
To ja rozwijających początki podstawowej funkcji generującej. Próbuję po prostu uzyskać to, aby zwrócić "liczbę" tablicy. Więc jeśli przekażę "7" do funkcji, powinienem wrócić [0, 1, 2, 3, 4, 5, 6].
Ale gdy próbuję utworzyć tę funkcję uzyskać
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
Jestem początkującym z funkcji PostgreSQL. Nie rozumiem, dlaczego nie mogę poprawnie uruchomić tej macierzy.
Znowu wszystko, czego chcę, to po prostu poprawnie uzupełnić tę tablicę "bieżącą" liczbą tablic. (Chodzi o to, aby pomóc mi zrozumieć, że faktycznie wykonuje pętlę poprawnie i poprawnie ją liczy).
Dziękuję za pomoc.
Dlaczego używasz bazy danych do generowania liczb pierwszych?!? –
Zakładam, że robisz to tylko po to, aby nauczyć się PL/SQL - myślę, że SO byłoby bardziej odpowiednim miejscem dla tego pytania. – MikeyB
Tak, właśnie robię to, aby się uczyć. – StanM