【发布时间】:2013-03-13 11:12:28
【问题描述】:
我想在循环时向表中插入一些记录。记录作为 varchar 选项卡传递给函数,即:
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 的哪个版本?
FOREACH IN ARRAY好像是在 9.1 中添加的。 -
始终提供您正在使用的版本号。这是一个程序员的网站,您应该知道这样做。此外,如果您提供一个完整的示例,很有可能您根本不需要循环,这样会更快。
标签: postgresql loops plpgsql sql-insert