2010-11-18 5 views
2

У меня есть один материализованный вид на одном сервере, который создается ссылкой БД. На этом Mview есть одна работа. (ранее созданный с помощью dbms_refresh.make).Изменения в материализованном

Теперь я создал 3 новых поля в оригинальной таблице. Мои запросы.

1) Нужно ли мне снова бросать и создавать Mview, если да, мне нужно снова создать журнал Mview на главном сервере 2) Что происходит с работой, выполняемой на Mview, мне нужно создать ее?

Также есть виды, созданные на Mview, поэтому - Если я запустил создание или замену запроса вида, создаст ли он какие-либо проблемы?

Просим руководствоваться.

Спасибо!

ответ

3

Если вам нужно включить новые столбцы в материализованное представление, то да, вам нужно заново создать материализованное представление. Вы должны явно отказаться от представления, так как нет инструкции «создать или заменить материализованное представление».

DROP MATERIALIZED VIEW blah; 
CREATE MATERIALIZED VIEW blah... 

Удаление или восстановление материализованного представления должно воссоздать задачу обновления. Не на 100% уверены, но вы должны, вероятно, воссоздать журнал.

И, если вам не нужно, чтобы включить новые столбцы в вашей точки зрения, вы на самом деле не нужно ничего делать ...

2

После отбрасывания/создания материализованного представления впоследствии вы должны перекомпилировать другие представления, поскольку они могут стать недействительными.

Вы можете проверить, что случилось с

select * 
from user_objects 
where status = 'INVALID'; 

перекомпилировать вид может быть сделано с

alter view the_view compile; 

или

exec dbms_utility.compile_schema(user); 

это просто перекомпилирует все в вашей схеме. Обязательно не выполняйте рабочие задания во время этого!

+0

Вы уверены, что «создать или заменить» работает для материализованного представления ? re: Ответ DCookie (и мой опыт) 'create or replace' возвращает ошибку Oracle на материализованном представлении. – Andrew

+0

Вы правы, материализованные представления не могут быть заменены. Я отредактировал свой ответ. –

 Смежные вопросы

  • Нет связанных вопросов^_^