2016-05-23 9 views
1

Мой друг создал материализованное представление, но представление не получает новые данные из таблицы Mater. Вид получает данные только при создании, после чего данные новостей не включаются.Материализованный вид - Oracle/данные не обновляются

Кто-нибудь может помочь мне решить эту проблему?

Fallow under my materialized view.

CREATE or REPLACE MATERIALIZED VIEW DATABASE.MyMatView 
    LOGGING 
    TABLESPACE SDBANCO 
    PCTFREE 10 
    INITRANS 2 
    STORAGE 
    (
     INITIAL 65536 
     NEXT 1048576 
     MINEXTENTS 1 
     MAXEXTENTS UNLIMITED 
     BUFFER_POOL DEFAULT 
    ) 
    NOCOMPRESS 
    NOCACHE 
    NOPARALLEL 
    REFRESH ON DEMAND 
    FORCE 
    DISABLE QUERY REWRITE 
AS 
    SELECT * FROM ..... 

Спасибо,

Матеус Лозано

ответ

3

Если вы хотите, чтобы материализованный вид был обновлен автоматически, вы должны использовать ON COMMIT метод обновления. Поскольку вы указали обновление ON DEMAND, вам необходимо вручную обновить материализованное представление с использованием метода DBMS_MVIEW.REFRESH.

Существует множество соображений по освещению материализованного вида. Я бы рекомендовал вам прочитать следующую документацию Oracle.

https://docs.oracle.com/database/121/DWHSG/refresh.htm#DWHSG8360

+0

Могу ли я использовать представление в MView с включенным COMMIT? –

+0

Я так не думаю. Поскольку ON COMMIT требует наличия журнала MV в базовых таблицах. Можете ли вы использовать запрос самого представления в качестве источника для mview? Вы также можете использовать процедуру EXPLAIN MVIEW для проверки возможностей mview. Прочтите этот https://docs.oracle.com/cd/B19306_01/appdev.102/b14258/d_mview.htm#CEGGEHHC –

4

Предполагая, что вы сделали это, но ... просто чтобы быть уверенным ... ты выдать команду, чтобы обновить MView, верно? Вы не ожидаете, что он будет обновляться сам по себе, если у вас есть опция REFRESH ON DEMAND прямо в определении представления, правильно?

+0

Можно ли использовать вид в MView с включенным COMMIT? –

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