#oracle #oracle11g #oracle10g #materialized-views
#Oracle #oracle11g #oracle10g #материализованные представления
Вопрос:
Я создал простое материализованное представление в Oracle с помощью этого запроса
SELECT p.registration_no, s.sponsor_no, s.sponsor_name, p.resignation_date
FROM nmr_registration_public p, lct_sponsor s
WHERE p.sponsor_no = s.sponsor_no;
Я установил для него режим обновления как FORCE ON COMMIT
, и он работает должным образом.
Я изменил запрос следующим образом, просто добавив NVL(p.resignation_date, SYSDATE)
оператор, подобный этому
SELECT p.registration_no, s.sponsor_no, s.sponsor_name, NVL(p.resignation_date, SYSDATE)
FROM nmr_registration_public p, lct_sponsor s
WHERE p.sponsor_no = s.sponsor_no;
Затем я получаю эту ошибку
ORA-12054: не удается установить атрибут обновления ПРИ фиксации для материализованного вида
NVL
Не поддерживается в MViews, если режим обновления установлен как ON COMMIT
? И есть ли какие-либо другие инструкции, которые не поддерживают ON COMMIT
?
Ответ №1:
Проблема не в nvl
, а в sysdate
Определяющий запрос материализованного представления не может содержать никаких неповторяемых выражений (ROWNUM, SYSDATE, неповторяемые функции PL / SQL и так далее).
Комментарии:
1. Будет ли он поддерживать вложенные запросы?