У меня есть материализованное представление, которое обновляется по запросу:
CREATE MATERIALIZED VIEW XYZ
REFRESH COMPLETE ON DEMAND
AS
SELECT * FROM ABC WHERE LAST_UPD > SYSDATE-30;
Когда я запускаю процедуру обновления, она терпит неудачу каждые два дня.
Команда обновления:
dbms_mview.refresh(list => 'XYZ',
method => 'C',
parallelism => 0,
atomic_refresh => false);
Ошибка:
1 - ОШИБКА ПРИ ОБЪЕДИНЕНИИ: ORA-12008: ошибка в пути обновления материализованного представления ORA-01555: слишком старый моментальный снимок: номер сегмента отката 406 с именем "_SYSSMU406_3487494604 $" слишком маленький ORA-02063: предыдущая строка из IJSFASIEBEL
Я читал, что использование select * для создания материализованного представления может вызвать эту ошибку, но я отбрасывал представление и воссоздавал его много раз, обновление работает нормально в один день и дает ошибку на следующий день. В базовую таблицу изменений не вносилось.
Может ли кто-нибудь сказать мне, что означает сообщение об ошибке или что может быть причиной проблемы?