powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Не могу заставить работать функцию.
3 сообщений из 3, страница 1 из 1
Не могу заставить работать функцию.
    #34447505
alosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
create or replace function tmp15(pint_table INT[])
returns RefCursor as $BODY$
declare
  c_cur RefCursor;
begin
  open c_cur for execute 'select * 
                          from employee
                          where id = any(' || pint_table || ')';
  return c_cur;
end; $BODY$
  LANGUAGE 'plpgsql';
...
Рейтинг: 0 / 0
Не могу заставить работать функцию.
    #34448801
alosha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Причем вот так работает.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
create or replace function tmp21(pint_table INT[])
returns RefCursor as $BODY$
declare
  c_cur RefCursor;
begin
  open c_cur for select * 
                   from employee
                  where id = any(pint_table);
  return c_cur;
end; $BODY$
  LANGUAGE 'plpgsql';

Но мне надо сделать динамически.
...
Рейтинг: 0 / 0
Не могу заставить работать функцию.
    #34448949
гр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Массив нужно явно перевести в текст и закавычить
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
declare
  v text;
...
  v := pint_table;
...
id = any(' || quote_literal(v) || ')';
...
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Не могу заставить работать функцию.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]