powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Динамический запрос в функции
9 сообщений из 9, страница 1 из 1
Динамический запрос в функции
    #34467123
xxman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Создал функцию
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
CREATE OR REPLACE FUNCTION test1(text) RETURNS SETOF RECORD AS
'
DECLARE 
 r RECORD;
BEGIN 
 FOR r IN EXECUTE ($1) LOOP
  RETURN NEXT r;
 END LOOP;

 RETURN;
END
'
LANGUAGE 'plpgsql' VOLATILE;
Вызываю
Код: plaintext
1.
SELECT * FROM test1('SELECT * FROM table1') AS (c1 INTEGER, c2 INTEGER)
Вроде как бы динамический запрос, только в test1() надо передавать разные запросы, т.е. AS (поля, типы) не известно.
Совсем запутался, замкнутый круг какой-то
...
Рейтинг: 0 / 0
Динамический запрос в функции
    #34467170
СергейК
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
xxman
Вроде как бы динамический запрос, только в test1() надо передавать разные запросы, т.е. AS (поля, типы) не известно.
Совсем запутался, замкнутый круг какой-то

V PG opisanie vozvrashaemyh zapisei (tipy i nazvania kolonok) doljny byt' dany libo v opredelenii functsii (s pomoschiu OUT parametrov), libo pri vyzove etoi functsii (pri pomoschi AS (...) ), po drugomu nikak.
...
Рейтинг: 0 / 0
Динамический запрос в функции
    #34467470
xxman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
То есть только на клиенте формировать? Как в SQL Server не получится?
...
Рейтинг: 0 / 0
Динамический запрос в функции
    #34468189
Serik Akhmetov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xxmanТо есть только на клиенте формировать? Как в SQL Server не получится?На клиенте можно сразу формировать
Код: plaintext
SELECT * FROM table1
Как в SQL Server не знаю.

А в чем вообще глубокий смысл такой конструкции ?
...
Рейтинг: 0 / 0
Динамический запрос в функции
    #34468257
xxman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В SQL Server можно написать sp_executesql "запрос", и не надо заренее определять названия и типы полей.
Serik AkhmetovА в чем вообще глубокий смысл такой конструкции ?
В этом запросе смысла особого нет, привел просто для примера, на самом деле запрос намного сложнее. В MS SQL делал подобное - в хранимой процедуре формировал строку SELECT и передавал в EXECUTE. Здесь же столкнулся с проблемой, а на клиенте как-то не хочется запрос формировать..
...
Рейтинг: 0 / 0
Динамический запрос в функции
    #34468450
st_serg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
отдавайте клиенту рефкурсоры
...
Рейтинг: 0 / 0
Динамический запрос в функции
    #34469991
xxman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
st_sergотдавайте клиенту рефкурсоры
Что за зверь - рефкурсор? Запрос где будет формироваться, на клиенте?
...
Рейтинг: 0 / 0
Динамический запрос в функции
    #34470265
st_serg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
где захотите, там и будет формироваться, про курсоры написано в документации (37.8. Cursors), насчет отличия от курсоров в MSSQL я не в курсе.
...
Рейтинг: 0 / 0
Динамический запрос в функции
    #34470787
xxman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, попробую разобраться
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Динамический запрос в функции
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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