작성시 Array_append을 사용하여 저 구문 오류를 범 코드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'
이 나 소수 생성 함수의 시작을 개발하고있다. 단순히 배열의 '개수'를 반환하도록 가져 오려고합니다. 따라서 함수에 '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
를 얻을. 왜 내가이 어레이를 제대로 작동시키지 못할지 이해하지 못합니다.
또 다시 원하는 것은 배열의 '현재'개수로이 배열을 정확하게 채우는 것입니다. (실제로 루프를 올바르게 수행하고 정확하게 계산하고 있음을 이해하는 데 더 많은 도움이됩니다.)
도움 주셔서 감사합니다. fine manual에서
왜 프라임을 생성하기 위해 데이터베이스를 사용하고 있습니까?!? –
나는 PL/SQL을 배우기 위해이 일을하고 있다고 가정한다 - 나는이 질문에있어서 SO가 더 적절한 장소라고 생각한다. – MikeyB
예 배우기 위해 이것을하고 있습니다. – StanM