在這裏給我語法錯誤是代碼使用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
我與Postgres的功能的新手。我不明白爲什麼我不能讓這個數組正常工作。
再次,我只需要將該陣列正確填入陣列的「當前」計數。 (這更多的是幫助我理解它實際上是在正確地執行循環並正確計算它)。
謝謝你的幫助。
你爲什麼使用數據庫來生成Primes?!? – 2012-03-13 00:55:29
我認爲你只是在學習PL/SQL,我認爲這對於這個問題來說是一個更合適的地方。 – MikeyB 2012-03-13 01:09:11
是的,我只是在做這個來學習。 – StanM 2012-03-13 13:44:11