powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Передача таблицы в функцию
11 сообщений из 11, страница 1 из 1
Передача таблицы в функцию
    #34468783
Вадим Прудивус
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет всем!

Вопрос: можно ли (и как) передать в функцию в качестве аргумента набор данных фиксированной структуры для дальнейшей манипуляции с ним при помощи SQL?

Перевожу проект с MSSQL на PG, там нет такой возможности, приходится работать через временные таблицы, это не очень хорошо так как приводит к перекомпиляции процедур и вообще не очень красиво. Говорят что в Оракле такое возможно...
...
Рейтинг: 0 / 0
Передача таблицы в функцию
    #34471091
domanix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Можно передавать массивом..
а
Можно передавать RefCursor
читай 37.8. Cursors ...
...
Рейтинг: 0 / 0
Передача таблицы в функцию
    #34471719
st_serg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
массив может быть только простых (базовых) типов, массивы user-defined типов не поддерживаются (пока?).
"продолжая собирать FAQ" http://sql.ru/forum/actualthread.aspx?tid=395957#3827963 (Минифак по форуму sql.ru/POSTGRESQL)
...
Рейтинг: 0 / 0
Передача таблицы в функцию
    #34473119
Вадим Прудивус
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторМожно передавать RefCursor
читай 37.8. Cursors ...

С курсором, насколько я понимаю, можно работать только по одной записи, сбрасываемой в переменные, или есть возможность работать с ним как с таблицей, используя SQL select, update и т.д.?


Похоже что придется все-таки использовать временные таблицы. :(
...
Рейтинг: 0 / 0
Передача таблицы в функцию
    #34499131
Вадим Прудивус
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
С учетом скорости работы Postgresql с курсорами и того, что триггеры обрабатываю только одну запись, похоже что RefCursor окажется вполне приемлемым вариантом.
...
Рейтинг: 0 / 0
Передача таблицы в функцию
    #34499297
Фотография Misha Tyurin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Набор данных фиксированной структуры может возвращать другая функция, результаты которой обрабатывать в цикле, к примеру.
...
Рейтинг: 0 / 0
Передача таблицы в функцию
    #34499954
Вадим Прудивус
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Misha TyurinНабор данных фиксированной структуры может возвращать другая функция, результаты которой обрабатывать в цикле, к примеру.
Речь о том чтобы именно передавать набор, а не возвращать его. То есть готовится набор данных и передается на обработку в другую (общую, унифицированную) процедуру.
...
Рейтинг: 0 / 0
Передача таблицы в функцию
    #34501696
Фотография Misha Tyurin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вадим ПрудивусТо есть готовится набор данных и передается на обработку в другую (общую, унифицированную) процедуру.

Я так и представляю, что одна функция (А) готовит набор данных (она возвращает setof), а другая (Б) - может его использовать. Как вариант, она (функция Б) может в цикле перебирать выход с функции А, или его подджойнивать в запросе, или еще как.
...
Рейтинг: 0 / 0
Передача таблицы в функцию
    #34501769
domanix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
IMHO
Для таких целей лучше всего использовать встроенные языки - PLJava, perl,python etc...
Соответственно вы можете воспользоваться всей мощью языка для передачи сложных структур между функциями... И даже организовать поточную обработку - когда одня функция - обрабатывает потоком поступающие данные- передвая их в другую функцию - также потоком и так далее. Причем функции можно заставить работать в разных нитях или процессах.. Так-что - присмотритесь в встроенным языкам- они того стоят!!!..
...
Рейтинг: 0 / 0
Передача таблицы в функцию
    #34501835
Фотография Misha Tyurin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
domanixТак-что - присмотритесь в встроенным языкам- они того стоят!!!..

Можно ваще вокруг оглянуться - там много чего интересного есть, в мире.
...
Рейтинг: 0 / 0
Передача таблицы в функцию
    #34502235
domanix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторМожно ваще вокруг оглянуться - там много чего интересного есть, в мире.

Согласен :-)
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Передача таблицы в функцию
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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