Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Динамический sql / 7 сообщений из 7, страница 1 из 1
15.03.2016, 13:01
    #39192203
HiHunter
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Динамический sql
Добрый день!
Требуется выполнить запрос на стороне клиента (QPSQL)
Запрос заранее неизвестен и формируется сложной логикой внутри процедуры(на стороне БД)
Количество возвращаемых запросом полей известно, но типы их могут быть произвольными.

Очевидно, написать функцию, которая возвр. произвольный тип нельзя.

Можно конечно сделать это в 2 приема:
1.получить на клиенте текст запроса
2.выполнить его

Есть ли способ сделать это в 1 прием?
спасибо
...
Рейтинг: 0 / 0
15.03.2016, 14:11
    #39192300
vyegorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Динамический sql
HiHunter,

Использовать text-овые поля со всеми вытекающими?
...
Рейтинг: 0 / 0
15.03.2016, 15:01
    #39192373
p2.
p2.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Динамический sql
HiHunterОчевидно, написать функцию, которая возвр. произвольный тип нельзя.на уровне декларации есть непроизвольные, но полиморфные псевдотипы. хотя и поддерживаются не всеми языками.

HiHunterМожно конечно сделать это в 2 приема:
1.получить на клиенте текст запроса
2.выполнить его

Есть ли способ сделать это в 1 прием?если следовать приведенному алгоритму буквально - вернуть открытый курсор. не понятно на чем тут принципиальная экономия. если возвращается множество строк и полей, все равно ответ в один сетевой пакет не уложится.
...
Рейтинг: 0 / 0
15.03.2016, 15:33
    #39192423
Author the new one
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Динамический sql
p2.,

авторОчевидно, написать функцию, которая возвр. произвольный тип нельзя.
Почему это нельзя? setof record
...
Рейтинг: 0 / 0
15.03.2016, 17:19
    #39192571
p2.
p2.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Динамический sql
Author the new oneавторОчевидно, написать функцию, которая возвр. произвольный тип нельзя.
Почему это нельзя? setof recordдля того, чтобы вызывать функцию с "произвольным" setof record, нужно знать и указать состав и типы полей. В то время, как для "select * from таблица", клиент не обязан заранее знать ее структуру, а может разобрать поля по метаданным открытого курсора.
...
Рейтинг: 0 / 0
17.03.2016, 21:11
    #39194896
HiHunter
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Динамический sql
Ок. Спасбо за ответы!
Как я понял, определился один вариант - открывать курсор на стороне клиента.
...
Рейтинг: 0 / 0
18.03.2016, 09:41
    #39195086
uranic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Динамический sql
Статья как раз про ваш случай: "Таблица как параметр в Postgresql"

https://habrahabr.ru/company/postgrespro/blog/278019/
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Динамический sql / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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