Обновление Oracle генерирует исключение таблицы не найден - PullRequest
4 голосов
/ 20 января 2012

Имея простой скрипт обновления:

BEGIN 
DBMS_SNAPSHOT.REFRESH(
  LIST => 'SCHEMA_NAME.TABLE_NAME', 
  PUSH_DEFERRED_RPC => TRUE, 
  REFRESH_AFTER_ERRORS => FALSE, 
  PURGE_OPTION => 1, 
  PARALLELISM => 0, 
  ATOMIC_REFRESH => TRUE, 
  NESTED => FALSE); 
END;

Oracle утверждает, что:

ORA-00942: table or view does not exist
ORA-06512: at "SYS.DBMS_SNAPSHOT", line 2251
ORA-06512: at "SYS.DBMS_SNAPSHOT", line 2457
ORA-06512: at "SYS.DBMS_SNAPSHOT", line 2426
ORA-06512: at line 2
00942. 00000 -  "table or view does not exist"

Вопрос: что мне не хватает?

Примечание:

  • Обновленный MV существует
  • , если схема не указана, результат тот же

Ответы [ 2 ]

1 голос
/ 20 января 2012

Это общий случай представления, в зависимости от некоторых других таблиц или представлений (которые могут зависеть от других данных), имеющих нарушенные зависимости. В этом конкретном случае представление зависело от другого представления, которое зависело от таблицы, в которой отсутствовал столбец. Спасибо Frosty Z за подсказку .

0 голосов
/ 08 января 2016

Я читал в другом месте, что выполнение

ALTER MATERIALIZED VIEW schema_name.table_name COMPILE;

может решить эту проблему.

у меня это не сработало, и мне нужно полностью отбросить и заново создать материализованное представление.

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