Stworzyłem zmaterializowany widok z DI_TEST_AL
użytkownikiem, nazwijmy go MY_MVIEW
. Pojawia się w USER_OBJECTS
tabeli MATERIALIZED VIEW
, gdy próbuję go upuścić, otrzymuję komunikat o powodzeniu, ale obiekt wciąż tam jest. W rzeczywistości, gdy próbuję go odtworzyć, pojawia się błąd „obiekt już istnieje”.
Widzę, że istnieje tabela o tej samej nazwie należąca do innego schematu. Zakładam, że nie powinno to powodować problemu, ale chciałem o tym wspomnieć.
Oto wynik SQL * Plus:
SQL*Plus: Release 11.2.0.1.0 Production on Mon Aug 1 17:01:50 2011
SQL> select object_name, object_type, owner from all_objects where object_name = 'MY_MVIEW';
OBJECT_NAME OBJECT_TYPE OWNER
----------- ----------------- ----------
MY_MVIEW MATERIALIZED VIEW DI_TEST_AL
MY_MVIEW TABLE DIDEV11
SQL> DROP MATERIALIZED VIEW MY_MVIEW;
Materialized view dropped.
SQL> select object_name, object_type, owner from all_objects where object_name = 'MY_MVIEW';
OBJECT_NAME OBJECT_TYPE OWNER
----------- ----------------- ----------
MY_MVIEW MATERIALIZED VIEW DI_TEST_AL
MY_MVIEW TABLE DIDEV11
SQL>
Dokładnie sprawdziłem swoje uprawnienia i DROP ALL MATERIALIZED VIEWS
otrzymałem je od DI_TEST_AL
użytkownika.
oracle-11g-r2
materialized-view
bazylika
źródło
źródło
DO_OPP_SEARCH_MVIEW
?STATUS
do zaznaczenia naALL_OBJECTS
. Mam również ten problem i dla mnie status zmaterializowanego widoku toINVALID
.Odpowiedzi:
Połącz się jako sysdba i sprawdź, czy są jakieś wpisy w dba_summaries dla MV. Jeśli jest uruchomiony,
źródło
dba_summaries
. Problem polega na tym, że kiedy próbuję uruchomićDROP SUMMARY MY_OWNER.MY_MATERIALIZED_VIEW;
, pojawia się błąd ORA-00950 ... nieprawidłowa opcja DROP .Napotkałem podobny problem, gdy próbowałem upuścić zmaterializowany widok, który mówi, że widok nie istnieje. Jeśli spróbuję go utworzyć, napisane jest, że Nazwa już istnieje. To jest błąd w Oracle.
Przed upuszczeniem widoku zapytaj o tabelę all_objects.
SQL: WYBIERZ * Z ALL_OBJECTS GDZIE OBJECT_NAME = 'MY_MVIEW'; Powinien zwrócić 2 rekordy, ojbect_type = TABLE i Object_type = MATERIALIZED VIEW.
Ale jeśli pokazuje tylko jeden rekord z Object_type = Table, upuść tę tabelę z bazy danych
Upuść tabelę MY_MVIEW;
I spróbuj odtworzyć zmaterializowany widok. To powinno działać.
źródło