gpt4 book ai didi

database - 为什么 Oracle 不在 DBA_dependencies 中包含使用任何数据库链接创建的对象 View ?

转载 作者:搜寻专家 更新时间:2023-10-30 20:46:57 26 4
gpt4 key购买 nike

我试图在 Oracle 文档中找到有关排除包括数据库链接在内的 View 的解释。 Oracle 指定这些 View 不存在但没有给出原因。即使远程依赖关系不由 Oracle(rpc 除外)“管理”,对象和 dblink 之间的现有依赖关系也包含在 Oracle 字典的依赖关系 View 中。我不明白这种排除的原因。

一种解释可能是 Oracle 缺乏管理。 “这些 View 或过程及其对数据库链接的依赖性不由 Oracle 管理:在这种情况下,缺乏依赖性管理比对依赖对象进行不必要的重新编译更可取。” (其他远程对象之间的依赖关系,Oracle 文档)问题是过程及其数据库链接包含在字典依赖关系 View 中,而 View 则不包含。因此,此解释不完整或不准确。

CREATE OR REPLACE FORCE VIEW "Object_VIEW" AS 
select * from Schema.target@Database_Link;
create or replace PROCEDURE PROC_DBLINK AS 
v_test varchar2(250);
BEGIN
select x into v_test from Schema.target@Database_Link;
END PROC_DBLINK ;
select * from dba_dependencies where name = "Object_VIEW" or name = "PROC_DBLINK" 

结果是 PRC_DBLINK referend 数据库链接。 Object_VIEW 和 Database_Link 之间的依赖关系被排除。

如果我们执行这个查询,我们也不会找到我们的 View

select * from dba_dependencies where referenced_link_name = 'Database_Link' ;

最佳答案

我认为问题中包含的解释与 Oracle 的文档相符。

您无法找到 View - 数据库链接依赖性,但您可以找到过程 - 数据库链接依赖性 <-- 这就是 Oracle 开发此 View 的方式。

DBA_DEPENDENCIES describes all dependencies in the database between procedures, packages, functions, package bodies, and triggers, including dependencies on views created without any database links.

引用:THIS

如果你想找到 View 和数据库链接之间的依赖关系,那么你必须在 USER_VIEWS 上使用外部 SQL。

干杯!

关于database - 为什么 Oracle 不在 DBA_dependencies 中包含使用任何数据库链接创建的对象 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57440888/

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