首页 > 解决方案 > 借助 oracle 中的 DBLINK,获取从数据库调用的表的依赖关系

问题描述

我在 oracle 中有一个数据库“myDB”,其中一个 DBLINK“MyDBLink”指向另一个 oracle 数据库“MyOriginalDB”。连接正常。我在 MyOriginalDB 中创建了几个表和视图,并在“myDB”中创建了指向这些表的视图。

例如,我的视图“Users_V”(在 myDB 中)从 MyOriginalDB 调用表 Users_T:

SELECT * FROM Users_T@MyDBLink

一切正常。

我现在需要检索 myDB 中的所有视图和表(所有依赖项),通过 DBLINK 从 MyOriginalDB 调用对象(表和视图)。

我试试这个查询:

SELECT
name, referenced_name, referenced_type, dependency_type
FROM user_dependencies

尽管如此,由于 DBLINK(视图查询中使用的@MyDBLink),我并没有从 myDB 中的视图中得到对不同对象(MyOriginalDB)的所有调用。

你能帮我做吗?

在此先感谢您的帮助

标签: sqloracledependenciesdblink

解决方案


根据oracle 文档

DBA_DEPENDENCIES 描述数据库中过程、包、函数、包主体和触发器之间的所有依赖关系,包括在没有任何数据库链接的情况下创建的视图的依赖关系。

因此,如果使用db links. 您必须使用*_views来查找视图的文本并在视图的文本中找到您的数据库链接。

干杯!!


推荐阅读