Гость
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / как из функции вернуть 2 массива? / 4 сообщений из 4, страница 1 из 1
30.06.2019, 01:45
    #39832000
полудух
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как из функции вернуть 2 массива?
вызываю из ф-и другую ф-ю вот так:
Код: sql
1.
SELECT bf1(_cid) INTO _bids, _cl_data;


а в ней отдаю их так:
Код: sql
1.
2.
_cl_data := array[_age, _emp_t, _sex, _salary_bid, _pens];
SELECT array_agg(peid) FROM tbl INTO _bids;



на что она мне возвращает такую строчку:
Код: sql
1.
2.
3.
4.
                                         bf1
-------------------------------------------------------------------------------------
 ("{2,5,6,7,8,9,10,11,12,13,14,15,16,17,18,23,24,25,26,27,28,30,32}","{32,8,1,1,0}")
(1 строка)



и когда я пытаюсь её поместить в заранее приготовленные переменные в bf2():
Код: sql
1.
2.
_bids int[];
_cl_data int[];


получаю это:
Код: sql
1.
2.
3.
ОШИБКА:  ошибочный литерал массива: "("{2,5,6,7,8,9,10,11,12,13,14,15,16,17,18,23,24,25,26,27,28,30,32}","{32,8,1,1,0}")"
ПОДРОБНОСТИ:  Значение массива должно начинаться с "{" или указания размерности.
КОНТЕКСТ:  функция PL/pgSQL bf2(integer,integer), строка 14, оператор SQL-оператор


позволяет помещать только в _bids text И _cl_data text...
при этом _cl_data остаётся NULL, а всё добро кладётся в _bids... (чекаю через RAISE NOTICE)
из чего я делаю вывод, что там вертается строка, а не 2 массива
так как вернуть именно 2 массива?
...
Рейтинг: 0 / 0
30.06.2019, 02:19
    #39832001
полудух
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как из функции вернуть 2 массива?
забыл: в bf1 они вертаются через (OUT _bids int[], OUT _cl_data int[])
...
Рейтинг: 0 / 0
30.06.2019, 08:57
    #39832006
fte
fte
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как из функции вернуть 2 массива?
полудух,

Попробуйте так...
Код: sql
1.
SELECT * FROM bf1(_cid) INTO _bids, _cl_data;
...
Рейтинг: 0 / 0
30.06.2019, 16:26
    #39832061
полудух
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как из функции вернуть 2 массива?
fte, спасибо, работает
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / как из функции вернуть 2 массива? / 4 сообщений из 4, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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