以下是代码
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'
这是我正在开发一个素数生成函数的起步阶段。我试图让它简单地返回数组的“计数”。所以如果我将“7”传递给函数,我应该会得到[0, 1, 2, 3, 4, 5, 6]。
但是当我尝试创建这个函数时,我得到了
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
我是一个PostgreSQL函数的新手。我不明白为什么我无法使这个数组正常工作。
我只想正确地填充这个数组,使其包含'current'数组计数。这主要是为了帮助我理解循环是否正确执行并正确计数。
谢谢你的帮助。