Este es el códigousando Array_append me da error de sintaxis al crear la función de 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'
Esto me está desarrollando el comienzo de una función de generación de primos. Estoy tratando simplemente de que devuelva el 'conteo' de la matriz. Entonces, si paso '7' a la función, debería volver [0, 1, 2, 3, 4, 5, 6].
Pero cuando intento crear esta función me sale
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
soy un novato con funciones de Postgres. No entiendo por qué no puedo hacer que esta matriz funcione correctamente.
De nuevo, todo lo que quiero es llenar esta matriz correctamente con el conteo 'actual' de la matriz. (Es más solo para ayudarme a entender que de hecho está haciendo el ciclo correctamente y lo está contando correctamente).
Gracias por su ayuda.
¿Por qué está utilizando una base de datos para generar Primes?!? –
Supongo que solo está haciendo esto para aprender PL/SQL, creo que SO sería un lugar más apropiado para esta pregunta. – MikeyB
Sí, solo estoy haciendo esto para aprender. – StanM