Я хотел бы вставить некоторые записи в таблицу во время цикла. Записи передаются в виде вкладки 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? «FOREACH IN ARRAY», похоже, был добавлен в 9.1. – NPE
** Всегда ** укажите номер версии, с которой вы работаете. Это сайт программистов, вы должны * знать *, чтобы сделать это. Кроме того, если вы предоставляете полный пример, скорее всего, вам не нужно зацикливаться на всех, и это будет намного быстрее. –