Если я правильно понимаю вопрос, вы хотите разбить создание MV на отдельные шаги:
- Создать пустую таблицу / материализованное представление.
- Заполнить его.
- Запланируйте процесс ночного обновления.
Для этого вы можете использовать предложение on prebuilt table
, чтобы преобразовать обычную таблицу в материализованное представление.
Исходная таблица демонстрации:
create table demo_source (id, name) as
select 1, 'Red' from dual union all
select 2, 'Yellow' from dual union all
select 3, 'Orange' from dual union all
select 4, 'Blue' from dual;
Новая таблица, которая будет нашей MV (вы также можете заполнить ее create table as select
, или вы можете создать ее, используя явные имена столбцов, типы данных, ограничения, разбиение и т. Д., Как в любой обычной таблице):
create table demo_mv as
select * from demo_source s
where 1 = 2;
Заполните его, используя отдельный шаг insert
:
insert into demo_mv
select * from demo_source;
Теперь мы конвертируем его из обычной таблицы в MV:
create materialized view demo_mv on prebuilt table
as
select * from demo_source;
Теперь DEMO_MV
- это материализованное представление.