Создание материализованного представления с помощью Fast Refrese в Oracle 11g

У меня странная проблема при создании материализованного представления таблицы с множеством столбцов, индексов и ограничений.

Я пробовал запустить команду:

СОЗДАТЬ МАТЕРИАЛИЗОВАННЫЙ ВИД mvX ПАРАЛЛЕЛЬНАЯ СБОРКА НЕМЕДЛЕННОЕ ОБНОВЛЕНИЕ БЫСТРО КАК ВЫБРАТЬ * ИЗ имя_таблицы

После выполнения команды, которую я получил: «невозможно создать быстро обновляющееся материализованное представление из сложного запроса». Итак, я запустил команду: dbms_mview.explain_mview ('SELECT * FROM table_name') и проверил mv_capabilities_table в REFRESH_FAST_AFTER_INSERT, было сообщение: « встроенное представление или подзапрос в списке FROM не поддерживается для этого типа MV "

  1. Я создал матирализованный журнал просмотра таблицы с первичным ключом и идентификатором строки.
  2. Я попытался создать такое же матирализованное представление в таблице копирования (CREATE TABLE имя_таблицы_копирования как select * from table_name), и он успешно завершился (также был создан журнал для этой таблицы)

Это представление должно быть БЫСТРОЕ ОБНОВЛЕНИЕ. Я не могу объяснить, почему в таблице копирования это удалось, а в исходной таблице - нет. помощь?


person user967710    schedule 01.07.2013    source источник
comment
Похоже, эта таблица на самом деле представляет собой представление.   -  person David Aldridge    schedule 01.07.2013
comment
Нет, это не так. Определенно стол.   -  person user967710    schedule 01.07.2013
comment
Лучше всего показать весь код, с помощью которого вы создаете mv, протестировать возможности и показать, что это таблица, а не представление, я думаю.   -  person David Aldridge    schedule 01.07.2013
comment
create: СОЗДАТЬ МАТЕРИАЛИЗОВАННЫЙ ВИД mvX ПАРАЛЛЕЛЬНАЯ СТРОИТЬ НЕМЕДЛЕННОЕ ОБНОВЛЕНИЕ БЫСТРО, КАК ВЫБРАТЬ * ИЗ имя_таблицы test: вызвать dbms_mview.explain_mview ('ВЫБРАТЬ * ИЗ имя_таблицы') и выбрать * из mv_capabilities_table. тип объекта: выберите object_type из user_objects, где object_name = 'TABLE_NAME'; (вернуться ТАБЛИЦА)   -  person user967710    schedule 02.07.2013


Ответы (1)


Возможно ли, что один из столбцов в вашей таблице является вычисляемым / виртуальным столбцом? Если есть, я бы исследовал возможность того, что это может не сработать в этом случае. Это единственная причина, по которой я могу думать, почему возможности MV выдают такую ​​ошибку в вашем случае.

person Tomás    schedule 07.12.2013