Я хотел бы использовать материализованное представление, которое обновляет ON COMMIT
.Мое вспомогательное представление объединяет две таблицы в локальной базе данных и одну таблицу в удаленной базе данных через DB Link.Как можно обновить представление, только если были внесены изменения в одну из двух локальных таблиц?
Есть ли другие способы решения этой проблемы?Могу ли я получить материализованное представление, просто соединив две локальные таблицы и поставив NULLS для столбцов из удаленной базы данных, а затем запустив триггер для вставки / обновления в материализованное представление, которое заполнило бы эти поля?Или обновления материализованного представления распространяются обратно на исходные таблицы?
Я делаю что-то вроде этого:
SELECT LOC1.ID, LOC1.NAME, LOC2.PRICING_TYPE, REM1.PURCHASING_ID
FROM LOCAL_TABLE_A LOC1, LOCAL_TABLE_B LOC2, REMOTE_TABLE@SOMEDB.WORLD 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
ИЗМЕНИТЬ.