Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / PostgreSQL Новый топик    Ответить
 аналог TABLE()  [new]
alex-ls
Member

Откуда: Иркутская обл - Пенза - Москва
Сообщений: 6709
Всем здравствуйте, пробовал найти аналог oracle TABLE().
Использую в коде вида:
BULK COLLECT INTO l_collection
select * from TABLE(l_collection)

пните где почитать, желательно с примерами, сам совсем чуть-чуть писал простейший код postgreSQL
ну или дайте простенький пример, если не сложно
19 авг 19, 12:07    [21952361]     Ответить | Цитировать Сообщить модератору
 Re: аналог TABLE()  [new]
alex-ls
Member

Откуда: Иркутская обл - Пенза - Москва
Сообщений: 6709
Написал немного криво, не поймут люди.
Коллекция используется для выборки туда порций результата запроса из нескольких таблиц через LIMIT.
И потом пакетной обработки всей коллекции в цикле:
SELECT FROM TABLE()
FORALL UPDATE
INSERT SELEC FROM TABLE()
и т.д.
Допускаю, что в PostgreSQL такой алгоритм не оптимальный и надо писать его иначе, а не через коллекции
19 авг 19, 12:49    [21952398]     Ответить | Цитировать Сообщить модератору
 Re: аналог TABLE()  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 48149
alex-ls
надо писать его иначе

Да. Сначала попробуй решать конечную задачу, а пляски с бубном коллекциями вокруг багов начинай если не получится.
19 авг 19, 13:32    [21952454]     Ответить | Цитировать Сообщить модератору
 Re: аналог TABLE()  [new]
Ролг Хупин
Member

Откуда: Чебаркуль
Сообщений: 3013
alex-ls
Написал немного криво, не поймут люди.
Коллекция используется для выборки туда порций результата запроса из нескольких таблиц через LIMIT.
И потом пакетной обработки всей коллекции в цикле:
SELECT FROM TABLE()
FORALL UPDATE
INSERT SELEC FROM TABLE()
и т.д.
Допускаю, что в PostgreSQL такой алгоритм не оптимальный и надо писать его иначе, а не через коллекции


Люди часто не понимают настоящих художников

Временная таблица?
unlogged table?
20 авг 19, 09:56    [21953080]     Ответить | Цитировать Сообщить модератору
 Re: аналог TABLE()  [new]
alex-ls
Member

Откуда: Иркутская обл - Пенза - Москва
Сообщений: 6709
Ролг Хупин
Временная таблица?
unlogged table?

Данные, которые приходят, требуют обработки. Т.е. они могут содержать дубли, данные для обновления/вставки одной или нескольких таблиц.
Все эти манипуляции в Oracle было быстрее делать над коллекцией. Как лучше в PostgreSQL не знаю, потому и спрашиваю. Просто написать код, который будет делать однострочные изменения, проблем нет
20 авг 19, 10:26    [21953107]     Ответить | Цитировать Сообщить модератору
 Re: аналог TABLE()  [new]
Ролг Хупин
Member

Откуда: Чебаркуль
Сообщений: 3013
alex-ls
Ролг Хупин
Временная таблица?
unlogged table?

Данные, которые приходят, требуют обработки. Т.е. они могут содержать дубли, данные для обновления/вставки одной или нескольких таблиц.
Все эти манипуляции в Oracle было быстрее делать над коллекцией. Как лучше в PostgreSQL не знаю, потому и спрашиваю. Просто написать код, который будет делать однострочные изменения, проблем нет


в анном случае х.с.н. с тем Ораклом, я же написал - чем вас не устраивают Временная таблицы или какая-нибудь
unlogged? пишите, дообратывайте, выбирайте
20 авг 19, 13:41    [21953419]     Ответить | Цитировать Сообщить модератору
 Re: аналог TABLE()  [new]
Синий Слон
Member

Откуда:
Сообщений: 220
alex-ls
Все эти манипуляции в Oracle было быстрее делать над коллекцией.


Продолжайте делать в Oracle. В чем проблема?
20 авг 19, 15:02    [21953523]     Ответить | Цитировать Сообщить модератору
 Re: аналог TABLE()  [new]
Alex__kK
Member

Откуда:
Сообщений: 236
По поводу алгоритма ничего не скажу, а аналог ораклового table() - функция unnest(), если работать с массивами
22 авг 19, 12:03    [21955272]     Ответить | Цитировать Сообщить модератору
Все форумы / PostgreSQL Ответить