来自SQL Server后台后,我对Oracle很痛苦。这是我的问题:
我感兴趣的有两种模式:ABC_OWNER
和XYZ_OWNER
。
我想知道的是XYZ_OWNER
架构中ABC_OWNER
架构中对表的所有引用。这主要用于存储过程。该查询将返回XYZ_OWNER
ABC_OWNER
中引用的所有表和列的列表。我已经尝试运行我在SO上找到的一些查询但我遇到了问题,因为我登录的帐户无法访问DBA表。
我这样做的原因是因为我打算删除XYZ_OWNER
表并插入新数据库。我想看看我在新数据库中需要哪些列以及它们是否存在。
答案 0 :(得分:1)
我在查找对象的依赖项时捕获了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和public_dependency视图的访问权限。