¿Por qué en Oracle 11gR2 no puedo descartar la vista materializada con el mismo usuario que la creó?

11

Creé una vista materializada con el DI_TEST_ALusuario, vamos a nombrarla MY_MVIEW. Aparece en la USER_OBJECTStabla 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 VIEWSse lo otorgo al DI_TEST_ALusuario.

basilikode
fuente
lo que es DO_OPP_SEARCH_MVIEW?
Jack dice que intente topanswers.xyz
Si desea descartar la vista materializada MY_MVIEW, colóquela así: DROP MATERIALIZED VIEW MY_MVIEW. ATM, estás dejando caer algo más, y podría ser crítico ...
Kerri Shotts
1
Estoy tratando de soltar MY_MVIEW, cambié el nombre en el ejemplo por brevedad, pero olvidé ese bit ... ¿Alguna idea de cómo depurar esto? ¿Por qué Oracle dice que se cayó pero no se cayó? Saludos
basilikode
¿Tienes un contrato de soporte? Hay algunos errores de 10 g que causan lo que estás viendo, tal vez todavía están por ahí. Traté de replicar contra 11gR2 pero no pude. Quizás proporcione un script completo de la tabla inicial y MV que otros puedan intentar replicar.
Matthew Watson el
Intenta incluir STATUSen el select on ALL_OBJECTS. También tengo este problema, y ​​para mí, el estado en la vista materializada es INVALID.
asombro

Respuestas:

10

Conéctese como sysdba y compruebe si hay entradas en dba_summaries para el MV. Si hay corrida,

drop summary <OWNER>.<MV_NAME>;`
Matthew Watson
fuente
Gracias amigo, eso impedía que la vista materializada se eliminara por completo ...
basilikode
Tengo este problema exacto, y el MV figuraba en la lista dba_summaries. El problema es cuando intento ejecutar DROP SUMMARY MY_OWNER.MY_MATERIALIZED_VIEW;, obtengo el error ORA-00950 ... opción DROP inválida .
asombro
@awe intenta conectar su base de datos como / sysdba. Entonces puedes usar el comando DROP SUMMARY.
Atilla Ozgur
0

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.

shyla
fuente