gpt4 book ai didi

oracle - 如何在 Oracle 中使用 DB 链接刷新物化 View

转载 作者:行者123 更新时间:2023-12-04 14:18:59 25 4
gpt4 key购买 nike

我在 Oracle 中有 3 个模式。第三个模式中有一个实体化 View ,我需要从第一个模式刷新它。

以下是要求的详细说明:

uv1(第一个模式)--> 数据库链接到 nwdb2(第二个模式)--> nwdb3(第三个模式)--> emp_de_mv (MV)

我需要从 uv1 刷新 emp_de_mv

我已经在 uv1 的 MV 上执行了一个 SELECT 语句,如下所示,它正在成功运行:

SELECT * FROM nwdb3.emp_de_mv@nwdb2;

我尝试按照建议从 uv1 刷新 MV,如下所示 here .

EXEC DBMS_MVIEW.refresh('nwdb3.emp_de_mv@nwdb2', 'C');

但它给了我以下错误:

Error starting at line : 25 in command -
EXEC DBMS_MVIEW.refresh('nwdb3.emp_de_mv@nwdb2', 'C')
Error report -
ORA-20000: ORA-00979: illegal reference to remote database
ORA-06512: at "SYS.DBMS_SNAPSHOT", line 2809
ORA-06512: at "SYS.DBMS_SNAPSHOT", line 3025
ORA-06512: at "SYS.DBMS_SNAPSHOT", line 2994
ORA-06512: at line 1
20000. 00000 - "%s"
*Cause: The stored procedure 'raise_application_error'
was called which causes this error to be generated.
*Action: Correct the problem as described in the error message or contact
the application administrator or DBA for more information.

谁能帮我解决以上问题?

请注意,出于安全原因,我无法在 uv1 中创建新的数据库链接。

最佳答案

ORA-20000: ORA-00979: illegal reference to remote database

您收到此错误消息是因为,作为 the documentation for refresh() states :

"These materialized views can be located in different schemas and have different master tables or master materialized views. However, all of the listed materialized views must be in your local database."

解决方案是通过跨数据库链接调用 DBMS_MVIEW 对远程数据库执行刷新:

EXEC DBMS_MVIEW.refresh@nwdb2('nwdb3.emp_de_mv', 'C'); 

how am I able to access nwdb3 from nwdb2 directly, without DB link & why can't I access nwdb2 directly from uv1, without DB link?

这是您的环境,所以我不知道 - 不能 - 了解架构。您将 nwdb2 描述为模式,但也将其描述为数据库链接。我猜你有一个名为 nwdb2 的数据库链接,它连接到一个也称为 nwdb2 的模式,该模式对远程中的另一个模式 nwdb3 具有特权数据库服务器。在远程服务器上,nwdb2 可以在没有数据库链接的情况下引用 nwdb3 模式中的对象,因为这些模式彼此是本地的。但是 nwdb1 必须使用数据库链接,因为它不是任何一个架构的本地链接。

关于oracle - 如何在 Oracle 中使用 DB 链接刷新物化 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57070482/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com