integer[] как параметр функции

Здравствуйте.
В Постгре есть возможность передавать в качестве параметра функции массив.
Вопрос как его использовать?

Конкретнее нужна функция с параметром integer[].
Запрос примерно такой (как я его представляю), не работает:
SELECT name
FROM table
WHERE id IN $1[]
Вот такой работает:
SELECT name
FROM table
WHERE id = $1[1]
Но я не знаю заранее размер массива, он произвольный. Где я чего не досмотрел?

P.S. Поиск кажется не работает.

Опции просмотра комментариев

Выберите предпочитаемый вами способ показа комментариев и нажмите "Сохранить настройки" для активации изменений.

На первый взгляд видно, что

На первый взгляд видно, что вы сравниваете целое id с массивом целых (в IN). Как же оно должно работать?
Т.е. круглые скобки должны быть - это раз и в скобках должен быть список целых - это два.

Перепробовал разные скобки и

Перепробовал разные скобки и прочие методы
заработало только вот так
WHERE id = ANY($1)
хотя судя по документации, должен был работать и такой метод
WHERE id IN (SELECT $1)
но у меня не заработало, почему не понял.

Можно так for i in

Можно так

for i in 1..(array_upper(iarr,1)) loop
if iarr[i]=11 then
j=j+1;
end if;
end loop;

Опции просмотра комментариев

Выберите предпочитаемый вами способ показа комментариев и нажмите "Сохранить настройки" для активации изменений.

Back to top

(С) Виктор Вислобоков, 2008-2023