Creé una vista materializada con el DI_TEST_AL
usuario, vamos a nombrarla MY_MVIEW
. Aparece en la USER_OBJECTS
tabla como MATERIALIZED VIEW
, trato de soltarlo, recibo un mensaje de éxito, pero el objeto sigue ahí. De hecho, si intento volver a crearlo, aparece un error como "el objeto ya existe".
Veo que hay una tabla con el mismo nombre que pertenece a otro esquema. Supongo que eso no debería causar el problema, pero tuve ganas de mencionarlo.
Aquí está la salida de 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>
Verifiqué dos veces mi permiso y DROP ALL MATERIALIZED VIEWS
se lo otorgo al DI_TEST_AL
usuario.
oracle-11g-r2
materialized-view
basilikode
fuente
fuente
DO_OPP_SEARCH_MVIEW
?STATUS
en el select onALL_OBJECTS
. También tengo este problema, y para mí, el estado en la vista materializada esINVALID
.Respuestas:
Conéctese como sysdba y compruebe si hay entradas en dba_summaries para el MV. Si hay corrida,
fuente
dba_summaries
. El problema es cuando intento ejecutarDROP SUMMARY MY_OWNER.MY_MATERIALIZED_VIEW;
, obtengo el error ORA-00950 ... opción DROP inválida .Me enfrenté a un problema similar cuando intenté soltar la vista materializada que dice que la vista no existe. Si trato de crearlo, dice Nombre ya existe. Este es un error en Oracle.
Antes de soltar la vista, consulte en la tabla all_objects.
SQL: SELECCIONAR * DE ALL_OBJECTS WHERE OBJECT_NAME = 'MY_MVIEW'; Debería devolver 2 registros, ojbect_type = TABLE y Object_type = MATERIALIZED VIEW.
Pero si solo muestra un registro con Object_type = Table, elimine esa tabla de la base de datos
Drop table MY_MVIEW;
E intente recrear la vista materializada. Deberia de funcionar.
fuente