Мне нужно создать функцию, которая возвращает курсор sysref, указывающий на некоторый набор результатов. мне нужно, чтобы присоединиться к глобальной временной таблицы с несколькими другими таблицами, основной Подход будет выглядеть следующим образом:Сплит-соединение нескольких таблиц в PL-SQL
Open sysrefcur for
select *
from
(select *
from globaltemptable) t1
left join t2
on <conditions1>
left join t3
on <conditions2>
left join t4
on <conditions2>
...
;
return sysrefcur;
Проблема заключается в том, что я должен совместной глобальной временной таблицы (ГТТ) с около 30 дополнительных таблиц (Я знаю, это много), но администраторы баз данных установили предел в 10 объединений,
Так что я думал о присоединении к таблице GTT с несколькими таблицами, вставляя результат в другой GTT, присоединяя его к другим таблицам и так далее на.
Я хочу знать, есть ли лучший подход к этому, и если я могу вообще не создавать дополнительные временные таблицы.
Благодарим за помощь.
Что это означает, что ограничение 10 соединений? Почему у вас такой предел? – Kacper
Лучшим подходом было бы создание бизнес-кейса, почему запрос, который объединяет 30 таблиц, необходим для «выполнения вашей работы». Затем лица, ответственные за принятие бизнес-решений, переопределяют ограничение DBA, если оно мешает «выполнять работу». Конечно, возможно, что вы и команда узнаете, что все, что вам нужно сделать, не требует объединения 30 таблиц; возможно, ваше решение не является оптимальным. – mathguy