Oracle11g 如何编写脚本来查找跨模式的表依赖关系?

Oracle11g 如何编写脚本来查找跨模式的表依赖关系?,oracle11g,Oracle11g,我是一个来自SQL Server背景的Oracle新手,非常痛苦。我的问题是: 我对两种模式感兴趣:ABC_所有者和XYZ_所有者 我想找出的是ABC_所有者模式中XYZ_所有者模式中对表的所有引用。这主要是针对存储过程的。查询将返回ABC_所有者在XYZ_所有者中引用的所有表和列的列表。我尝试运行了一些在SO上找到的查询,但由于我登录的帐户无法访问DBA表,因此遇到了问题 我这样做的原因是因为我计划删除XYZ_所有者表并插入一个新的数据库。我想看看我的新数据库中需要哪些列,以及它们是否存在。我

我是一个来自SQL Server背景的Oracle新手,非常痛苦。我的问题是:

我对两种模式感兴趣:ABC_所有者和XYZ_所有者

我想找出的是ABC_所有者模式中XYZ_所有者模式中对表的所有引用。这主要是针对存储过程的。查询将返回ABC_所有者在XYZ_所有者中引用的所有表和列的列表。我尝试运行了一些在SO上找到的查询,但由于我登录的帐户无法访问DBA表,因此遇到了问题


我这样做的原因是因为我计划删除XYZ_所有者表并插入一个新的数据库。我想看看我的新数据库中需要哪些列,以及它们是否存在。

我捕获了TOAD在查找对象依赖项时执行的查询。您可以调整的精简版本如下所示:

    SELECT uo1.object_name
      FROM (SELECT object_id, referenced_object_id
              FROM public_dependency
             WHERE referenced_object_id <> object_id) pd,
           all_objects uo1
     WHERE uo1.object_id = pd.object_id
CONNECT BY PRIOR pd.object_id = pd.referenced_object_id
START WITH pd.referenced_object_id IN (SELECT object_id
                                         FROM all_objects
                                        WHERE     object_name = <your table>
                                              AND owner = <your schema name> )

如果没有,则需要授予对所有对象和公共依赖项视图的访问权限。

查看公共依赖项视图。感谢您的查询。我看到一些奇怪的东西,其中引用的对象不在all_objects表中。我在这里为它创建了一个单独的问题,以防您有更多信息: