2014-10-31 3610 views
1

我有一个新的空模式,我试图创建一个新的物化视图问题是我有一个ORA - 12006错误,我不知道WY,因为就像我已经说过了,在玛是空的,有什么数据它尚未...ORA-12006:具有相同user.name的物化视图已经存在

我的查询看起来像:

CREATE MATERIALIZED VIEW mySchema.mvName (column1,column2) 
TABLESPACE myTablespace 
REFRESH COMPLETE ON DEMAND 
WITH PRIMARY KEY 
AS 
SELECT DISTINCT column1,column2 AS alias 
FROM [email protected] 
WHERE condition1; 
/

我已经alredy创建拨款予DBLINK。

有人能帮我吗? 谢谢!

+1

什么是'DROP的输出物化视图mySchema.mvName'? – 2014-10-31 11:09:52

回答

2

如果问题的代码是正是您在SQL * Plus运行那么这个预期是什么。

对于SQL * Plus中的SQL语句,您不需要; a /;就够了。 PL/SQL只需要/

实际上,在您的情况下,/是您出错的原因。

简而言之:当SQL * Plus到达;时,它创建物化视图。然后到达/这意味着“在缓冲区中运行语句”。因此,再次执行create mview - 显然会产生一个错误。

见我关于这个话题相关答案更多细节:
https://stackoverflow.com/a/10207695/330315

+0

是的!你是对的!!我正在使用sqlPlus,但我正在执行的脚本是由Toad提供的,所以/字符是自动生成的。删除它,它工作正常!谢谢大家,谢谢大家! – 2014-10-31 11:39:49

+0

你不需要降落伞跳伞。你需要降落伞跳伞两次;-) – 2014-10-31 11:42:41

0

简单的,你可以检查,如果你有机会获得字典

select object_name,object_type,owner 
from dba_objects where object_name='yourobject'; 

或者与选择

SELECT * 
FROM <source user>.<source table>@<database link> 

即使西尔的问题,一个很基本的检查是非常适用

DROP MATERIALIZED VIEW myschema.mvname; 

然后尝试创建视图。

如果错误是快照,然后重复检查在它

SELECT * 
FROM all_snapshots ; 
相关问题