Могу ли я обновить материализованное представление при фиксации только для двух из трех таблиц в его операторе выбора?

Я хотел бы использовать материализованное представление, которое обновляет ON COMMIT. Мое резервное представление объединяет две таблицы в локальной базе данных и одну таблицу в удаленной базе данных через DB Link. Как я могу обновить представление только при внесении изменений в одну из двух локальных таблиц?

Есть ли другие способы решения этой проблемы? Могу ли я просто соединить материализованное представление с двумя локальными таблицами и поместить NULL для столбцов из удаленной базы данных, а затем получить триггер на вставку / обновление материализованного представления, которое заполнит эти поля? Или обновления материализованного представления распространяются обратно на исходные таблицы?

Я делаю примерно так:

SELECT LOC1.ID, LOC1.NAME, LOC2.PRICING_TYPE, REM1.PURCHASING_ID
FROM LOCAL_TABLE_A LOC1, LOCAL_TABLE_B LOC2, [email protected] REM1
WHERE LOC1.ID = LOC2.MASTER_ID
AND LOC1.REM_ID = REM1.ID
AND LOC2.YEAR = REM1.YEAR

REMOTE_TABLE - это только таблица поиска для информации, относящейся к двум локальным таблицам. Он не должен ничего здесь приводить, и я хочу, чтобы материализованное представление обновлялось только при LOCAL_TABLE_A ИЛИ LOCAL_TABLE_B ИЗМЕНЕНИИ.


person aw crud    schedule 06.10.2010    source источник


Ответы (1)


Вы можете использовать промежуточное материализованное представление для удаленной таблицы. Этот MV будет создан в вашей локальной БД с помощью REFRESH ON DEMAND, чтобы вы могли обновить его вручную. Ваш MV будет использовать локальную таблицу вместо удаленной.

person Vincent Malgrat    schedule 06.10.2010