Eu criei uma visão materializada com o DI_TEST_ALusuário, vamos nomear MY_MVIEW. Ele aparece na USER_OBJECTStabela como MATERIALIZED VIEW, eu tento descartá-lo, recebo uma mensagem de sucesso, mas o objeto ainda está lá. De fato, se eu tentar recriá-lo, recebo um erro como "o objeto já existe".
Vejo que há uma tabela com o mesmo nome pertencente a outro esquema. Suponho que isso não deve causar o problema, mas tive vontade de mencioná-lo.
Aqui está a saída do 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>
Eu verifiquei minha permissão e DROP ALL MATERIALIZED VIEWSé concedida ao DI_TEST_ALusuário.
STATUSna seleção em ALL_OBJECTS. Eu também tenho esse problema e, para mim, o status na exibição materializada é INVALID.
DO_OPP_SEARCH_MVIEW?