创建实体化视图产生ORA-600 [ksmovrflow], [kkznxddl.begin]错误的解决方法

王朝other·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

晚上测试实体化视图复制,测试环境中的master site是Oracle10g,MV site是Oracle9201,当在MV site上创建快速刷新的实体化视图时,报ORA-600错误。

SQL> CREATE MATERIALIZED VIEW KAMUS.ACCOUNT2004 REFRESH FAST WITH PRIMARY KEY AS SELECT * FROM KAMUS.ACCOUNT2004@orcl;

CREATE MATERIALIZED VIEW KAMUS.ACCOUNT2004 REFRESH FAST WITH PRIMARY KEY AS SELECT * FROM KAMUS.ACCOUNT2004@orcl

ORA-00600: internal error code, arguments: [ksmovrflow], [kkznxddl.begin], [], [], [], [], [], []

查metalink,发现又是一个bug,这个bug只有当在Oracle8或者9中创建基于Oracle10g的实体化视图时才会发生。

原因:

Oracle10g的master table中创建主键时候显式指定了主键的名称。如下

alter table table_name add constraint < constraint name> primary key (< col>);

解决方法:

删除这个主键,然后创建一个不指定名称的主键,由Oracle自动命名,如下

alter table ACCOUNT2004 add primary key(OCCURTIME, ACCTID, CURRENCYID);

这样产生的主键名称就变成SYS_CXXXX。

之后重新在MV site上创建实体化视图,成功。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航