|
|
|
Динамический sql
|
|||
|---|---|---|---|
|
#18+
Добрый день! Требуется выполнить запрос на стороне клиента (QPSQL) Запрос заранее неизвестен и формируется сложной логикой внутри процедуры(на стороне БД) Количество возвращаемых запросом полей известно, но типы их могут быть произвольными. Очевидно, написать функцию, которая возвр. произвольный тип нельзя. Можно конечно сделать это в 2 приема: 1.получить на клиенте текст запроса 2.выполнить его Есть ли способ сделать это в 1 прием? спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2016, 13:01 |
|
||
|
Динамический sql
|
|||
|---|---|---|---|
|
#18+
HiHunter, Использовать text-овые поля со всеми вытекающими? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2016, 14:11 |
|
||
|
Динамический sql
|
|||
|---|---|---|---|
|
#18+
HiHunterОчевидно, написать функцию, которая возвр. произвольный тип нельзя.на уровне декларации есть непроизвольные, но полиморфные псевдотипы. хотя и поддерживаются не всеми языками. HiHunterМожно конечно сделать это в 2 приема: 1.получить на клиенте текст запроса 2.выполнить его Есть ли способ сделать это в 1 прием?если следовать приведенному алгоритму буквально - вернуть открытый курсор. не понятно на чем тут принципиальная экономия. если возвращается множество строк и полей, все равно ответ в один сетевой пакет не уложится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2016, 15:01 |
|
||
|
Динамический sql
|
|||
|---|---|---|---|
|
#18+
p2., авторОчевидно, написать функцию, которая возвр. произвольный тип нельзя. Почему это нельзя? setof record ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2016, 15:33 |
|
||
|
Динамический sql
|
|||
|---|---|---|---|
|
#18+
Author the new oneавторОчевидно, написать функцию, которая возвр. произвольный тип нельзя. Почему это нельзя? setof recordдля того, чтобы вызывать функцию с "произвольным" setof record, нужно знать и указать состав и типы полей. В то время, как для "select * from таблица", клиент не обязан заранее знать ее структуру, а может разобрать поля по метаданным открытого курсора. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2016, 17:19 |
|
||
|
Динамический sql
|
|||
|---|---|---|---|
|
#18+
Ок. Спасбо за ответы! Как я понял, определился один вариант - открывать курсор на стороне клиента. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.03.2016, 21:11 |
|
||
|
Динамический sql
|
|||
|---|---|---|---|
|
#18+
Статья как раз про ваш случай: "Таблица как параметр в Postgresql" https://habrahabr.ru/company/postgrespro/blog/278019/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.03.2016, 09:41 |
|
||
|
|

start [/forum/topic.php?fid=53&fpage=94&tid=1997347]: |
0ms |
get settings: |
7ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
34ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
| others: | 215ms |
| total: | 343ms |

| 0 / 0 |
