Есть ли какой-либо способ в Oracle создать глобальную временную таблицу, которая будет удалена после окончания сеанса? Я знаю, как создать временную таблицу с условием удаления строк, но для меня это недостаточно.Глобальная временная таблица Oracle
ответ
Это похоже на путь Postgres. К сожалению, в Oracle это невозможно. Попробуйте использовать PL/SQL Collections and Records
Почему это «несчастливо»? Тот факт, что глобальные временные таблицы сохраняются (это временные данные), является функцией. –
В качестве примера: когда у вас есть ограничения на создание новых постоянных объектов (таблицы && types). В этом случае вы будете использовать коллекции, без доступа к SQL: ** из таблицы (коллекции) **. Это действительно неудобно. – saphsys
Почему у вас есть ограничения на создание новых постоянных объектов? Это проблема для тех, кто навязал вам глупые ограничения, а не проблему с тем, как Oracle разработала GTT. –
Вы можете, вроде (но падение должно быть ручным), но создавать объекты на лету не рекомендуется. Возможно, вы можете объяснить, почему вы думаете, что вам нужно это делать. Если вы пришли из другой СУБД, которая позволяет это, вам может понадобиться другой подход для Oracle - возможно, подзапрос факторинга, возможно, коллекции, возможно, что-то еще. Это действительно зависит от того, что вы делаете и какую проблему вы пытаетесь решить. –
Пожалуйста, объясните, почему это «недостаточно» для вас. Какую ** настоящую ** проблему вы пытаетесь решить? –
Проблема в том, что я создаю много временных таблиц только для того, чтобы я мог экспортировать данные из них, и через какое-то время моя схема заполнится ненужными таблицами под названием «temp», «temp1» и т. Д. Было бы неплохо, если бы у Oracle было что-то вроде «рабочая библиотека» в SAS, которая полностью исчезает после отключения. –