Пример создания временных таблиц на PL/SQL как в MSSQL

Осваиваем Oracle и PL/SQL

Для того, кто перешёл с MSSQL на Oracle, как например для меня, очень не привычно отсутствие такой удобной конструкции как:

select * into #tmp from table1

Где #tmp — временная таблица, с которой мы в рамках сессии можем далее обращаться как с обычной.
Однако в Oracle такая конструкция не работает. Мои попытки сходу найти какой либо аналог, успехом не увенчались. Однако свершилось чудо, и спустя некоторое время более опытный в этом вопросе коллега подсказал таки выход, который по сути реализует аналогичную вещь как и в MSSQL.

И так, вот как оказывается можно:
with

--Задаем временные таблицы
t_view1 as (select * from table1 where id = 1),

t_view2 as (select * from table2 where id = 1)

--Производим действия с использованием временных таблиц
select * from table3 t where
exists (select * from t_view1 v where v.id = t.id)
and exists (select * from t_view2 v where v.id = t.id)


И всё!..
(Кусочек кода не большой и думаю понятен, без излишнего разъяснения).

PL/SQL temp tables временные таблицы

Оставить первый комментарий: