问题描述
你好,
Actual数据库: 11g R2标准版;
Source1数据库: 10g R2企业版;
Source2数据库: 11g标准版;
Scenario
Step 1.为从Source1 db获取数据创建数据库链接:
Step 2.创建物化视图:
Step 3.将dblink的源更改为Source2:
Step 4.再次刷新实体化视图:
第一次尝试加注:
第二次和随后的尝试引发了:
除了重新创建物化视图之外,还有任何想法如何避免错误?重新创造实际上是有效的。问题的原因是什么?
谢谢!
Actual数据库: 11g R2标准版;
Source1数据库: 10g R2企业版;
Source2数据库: 11g标准版;
Scenario
Step 1.为从Source1 db获取数据创建数据库链接:
CREATE DATABASE LINK tmp_dbl_test CONNECT TO my_user IDENTIFIED BY my_pwd USING 'my_db_source1';
Step 2.创建物化视图:
CREATE MATERIALIZED VIEW my_mv
BUILD IMMEDIATE
REFRESH ON DEMAND
AS
SELECT *
FROM my_source1_table@tmp_dbl_test
;
Step 3.将dblink的源更改为Source2:
DROP DATABASE LINK tmp_dbl_test; CREATE DATABASE LINK tmp_dbl_test CONNECT TO my_user IDENTIFIED BY my_pwd USING 'my_db_source2';
Step 4.再次刷新实体化视图:
BEGIN
DBMS_MVIEW.REFRESH(
list => 'my_mv'
);
END;
第一次尝试加注:
ORA-04062: signature of package "SYS.DBMS_SNAPSHOT_UTL" has been changed ORA-06512: at line 1
第二次和随后的尝试引发了:
ORA-06550: line 1, column 9: PLS-00306: wrong number or types of arguments in call to 'VERIFY_LOG' ORA-06550: line 1, column 9: PL/SQL: Statement ignored
除了重新创建物化视图之外,还有任何想法如何避免错误?重新创造实际上是有效的。问题的原因是什么?
谢谢!
专家解答
你不能只改变数据库链接的定义!这将物化的观点指向了一个新的来源。
如果你想将物化视图指向一个新的数据库,那么是的,你必须重新创建它。
您可以创建一个新的数据库链接和MV以及现有的链接。你不能给MV重命名。但是,如果要保留原始名称,则可以在其位置创建同义词。
如果你想将物化视图指向一个新的数据库,那么是的,你必须重新创建它。
您可以创建一个新的数据库链接和MV以及现有的链接。你不能给MV重命名。但是,如果要保留原始名称,则可以在其位置创建同义词。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




