Оракул между предложениями причина ORA-12015: невозможно создать быстрое обновление материализованного представления из сложного запроса - PullRequest
0 голосов
/ 29 июня 2018

Я успешно создаю материализованное представление с помощью скрипта:

CREATE MATERIALIZED VIEW orderitem_mvmt
BUILD IMMEDIATE
REFRESH FAST
ON DEMAND
AS
select * from order_item;

Пытаясь увеличить производительность, я меняю вот так

CREATE MATERIALIZED VIEW orderitem_mvmt
BUILD IMMEDIATE
REFRESH FAST
ON DEMAND
AS
select * from order_item
where to_char(last_upd,'yyyy') between to_char(sysdate,'yyyy')-3 and  to_char(sysdate,'yyyy')+3;

Запуск сценария вызывает ошибку ORA-12015: невозможно создать быстрое обновление материализованного представления из сложного запроса

Я не понимаю, как это соответствует быстрому обновлению Ограничения

Спасибо.

1 Ответ

0 голосов
/ 29 июня 2018

Посмотрите на Общие ограничения на быстрое обновление

Определяющий запрос материализованного представления ограничен следующим образом:

  • Материализованное представление не должно содержать ссылок на неповторяющиеся выражения, такие как SYSDATE и ROWNUM.

  • Материализованное представление не должно содержать ссылок на типы данных RAW или LONG RAW.

  • Не может содержать подзапрос списка SELECT.

  • Он не может содержать аналитические функции (например, RANK) в предложении SELECT.

  • Не может содержать предложение MODEL.

  • Не может содержать предложение HAVING с подзапросом.

  • Он не может содержать вложенные запросы, которые имеют ЛЮБОЙ, ВСЕ или НЕ СУЩЕСТВУЮТ.

  • Он не может содержать предложение [START WITH…] CONNECT BY.

  • Он не может содержать несколько таблиц подробностей на разных сайтах.

  • В материализованных представлениях ON COMMIT не может быть удаленных таблиц подробностей.

  • Вложенные материализованные представления должны иметь объединение или совокупность.

  • Материализованные представления объединения и материализованные агрегатные представления с предложением GROUP BY не могут быть выбраны из организованной по индексу таблицы.

Ваш запрос содержит SYSDATE, поэтому вы не можете использовать его для FAST REFRESH

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...