|
plpgsql возврат структуры таблицы по результату функции
|
|||
---|---|---|---|
#18+
Здравствуйте! Написал функцию на plpgsql Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9.
Возвращает таблицу из двух колонок. Возможно ли обойтись без returns table (где определенно заданные типы данных и кол-во колонок), а использовать RETURNS SETOF или еще что-то для возврата тех колонок и тех типов, которые будут выдаваться после RETURN query (динамическая таблица с разным кол-вом колонок и типами)? Заранее огромное спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2019, 02:09 |
|
plpgsql возврат структуры таблицы по результату функции
|
|||
---|---|---|---|
#18+
mcmot, сделать функцию, которая бы возвращала динамическую структуру нельзя, но 1) можно вернуть таблицу с полем JSON - универсально, но затраты на преобразование в JSON 2) либо функцию, которая генерит текстовый SQL, который выполняется через PREPARE , затем EXECUTE ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2019, 09:06 |
|
plpgsql возврат структуры таблицы по результату функции
|
|||
---|---|---|---|
#18+
mcmotВозможно ли обойтись без returns table (где определенно заданные типы данных и кол-во колонок), а использовать RETURNS SETOF или еще что-то для возврата тех колонок и тех типов, которые будут выдаваться после RETURN query (динамическая таблица с разным кол-вом колонок и типами)? Разумеется можно: Код: sql 1. 2. 3. 4. 5. 6. 7.
Только при вызове нужно обязательно указывать структуру таблицы: Код: sql 1. 2. 3. 4. 5.
иначе будет ошибка: Код: sql 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2019, 11:29 |
|
plpgsql возврат структуры таблицы по результату функции
|
|||
---|---|---|---|
#18+
Павел ЛузановРазумеется можно: ... Только при вызове нужно обязательно указывать структуру таблицы: Прикольно, этот способ оказался вычеркнут из моей ассоциативной памяти. Как то попробовал пару раз, решил что такие функции писать совсем нехорошо, видимо поэтому мои нейроны выдали, что такого способа не существует :-). ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2019, 12:01 |
|
plpgsql возврат структуры таблицы по результату функции
|
|||
---|---|---|---|
#18+
Спасибо всем! Очень помогли! ... |
|||
:
Нравится:
Не нравится:
|
|||
21.01.2019, 20:56 |
|
|
start [/forum/topic.php?fid=53&msg=39762219&tid=1995395]: |
0ms |
get settings: |
11ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
43ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
45ms |
get tp. blocked users: |
2ms |
others: | 296ms |
total: | 432ms |
0 / 0 |