我想在循環時在表格中插入一些記錄。記錄是作爲一個varchar選項卡的功能,即:通過INSERT while LOOPing
create function a(tab varchar[]) RETURNS void AS
$$
DECLARE
b varchar(20);
BEGIN
FOREACH b IN ARRAY tab
LOOP
INSERT INTO....;
END LOOP;
RETURN;
END;
$$
LANGUAGE plpgsql;
但是,在執行有錯誤時:
ERROR: syntax error at or near "FOREACH"
LINE 1: FOREACH $1 IN ARRAY tab LOOP INSERT INTO x (c, ...
QUERY: FOREACH $1 IN ARRAY tab LOOP INSERT INTO x (c) VALUES ($1)
CONTEXT: SQL statement in PL/PgSQL function " near line ...
********** ERROR **********
ERROR: syntax error at or near "FOREACH"
有誰知道爲什麼和如何解決這一問題?
哪個版本的Postgres?似乎已經在9.1中添加了「陣列中的FOREACH」。 – NPE 2013-03-13 11:15:53
**始終**提供您正在使用的版本號。這是一個程序員的網站,你應該知道*做到這一點。另外,如果你提供了一個完整的例子,很可能你不需要循環,而且這種方式會更快。 – 2013-03-13 16:41:37