为什么在Oracle 11gR2中,不能用创建它的同一用户删除物化视图?


11

我与DI_TEST_AL用户一起创建了一个物化视图,命名为MY_MVIEW。它在USER_OBJECTS表中显示为MATERIALIZED VIEW,我尝试将其删除,我收到一条成功消息,但该对象仍然存在。实际上,如果我尝试重新创建它,则会收到类似“对象已存在”的错误。

我看到有一个同名的表属于另一个模式。我认为这不会引起问题,但我想提一提。

这是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> 

我仔细检查了我的许可并DROP ALL MATERIALIZED VIEWS授予了该DI_TEST_AL用户。


是什么DO_OPP_SEARCH_MVIEW
杰克说尝试topanswers.xyz 2011年

如果要删除MY_MVIEW实例化视图,请像这样删除它:DROP MATERIALIZED VIEW MY_MVIEW。自动取款机,您要丢掉其他东西,这可能很关键...
Kerri Shotts

1
我试图删除MY_MVIEW,为简洁起见,我在示例中更改了名称,但我忘记了这一点...知道如何调试吗?为什么oracle会说它被删除了却没有呢?干杯
–basilikode

您有支持合同吗?有一些10g的bug会引起您所看到的错误,也许它们仍然存在。我尝试针对11gR2复制,但无法复制。也许从初始表和MV提供一个完整的脚本,其他人可以尝试复制。
马修·沃森

尝试包括STATUS在中ALL_OBJECTS。我也遇到这个问题,对我来说,物化视图上的状态为INVALID
敬畏

Answers:


10

以sysdba身份连接,并检查MV的dba_summaries中是否有任何完整内容。如果有跑

drop summary <OWNER>.<MV_NAME>;`

谢谢队友,这阻止了
实体

我有这个确切的问题,并且MV在中列出dba_summaries。问题是当我尝试运行时DROP SUMMARY MY_OWNER.MY_MATERIALIZED_VIEW;,出现错误ORA-00950 ...无效的DROP选项
敬畏

@awe尝试将您的数据库连接为/ sysdba。然后,您可以使用DROP Summary命令。
Atilla Ozgur '02

0

当我尝试删除实例化视图时,它说视图不存在,我遇到了类似的问题。如果我尝试创建它,它说名称已经存在。这是Oracle中的错误。

删除视图之前,请查询all_objects表。

SQL:SELECT * FROM ALL_OBJECTS WHERE OBJECT_NAME ='MY_MVIEW'; 它应该返回2条记录,ojbect_type = TABLE和Object_type = MATERIALIZED VIEW。

但是,如果它只显示一条带有Object_type = Table的记录,则将该表从数据库中删除

放置表格MY_MVIEW;

并尝试重新创建实例化视图。它应该工作。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.