Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Передача таблицы в функцию / 11 сообщений из 11, страница 1 из 1
18.04.2007, 11:04
    #34468783
Вадим Прудивус
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача таблицы в функцию
Привет всем!

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

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

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


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

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

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

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


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