创建实体化视图产生ORA600 [ksmovrflow], [kkznxddl.begin]错误的解决方法数据库教程 -电脑资料

电脑资料 时间:2019-01-01 我要投稿
【meiwen.anslib.com - 电脑资料】

    创建|错误|解决|视图

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

创建实体化视图产生ORA600 [ksmovrflow], [kkznxddl.begin]错误的解决方法数据库教程

    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的实体化视图时才会发生,

电脑资料

创建实体化视图产生ORA600 [ksmovrflow], [kkznxddl.begin]错误的解决方法数据库教程》(http://meiwen.anslib.com)。

    原因:

    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上创建实体化视图,成功。

最新文章