我可以使用 Oracle sys 表来跟踪两个表之间的路径,从 X 表到 Y 表的所有可能性。问题是:我在一个巨大的数据库上工作,很难快速知道哪些表对于在两个表之间建立连接至关重要。我可以这样做吗?
第一需求:
SQL Developer Data Modeler 和其他工具的问题是必须选择表来 rev_eng (所以我应该已经知道要选择的表)但对我来说,这是主要问题。在我的情况下,我有 800 个表,我不能全部选择它们来跟踪路径。我的愿望是提交两个表作为参数,然后生成所有可能的路径。
第二需求:
我已经尝试查询 sys.all_constraints 并且我所做的最大值是检测直接连接到表 X 的表。查询:
SELECT C1.TABLE_NAME,C2.TABLE_NAME
FROM ALL_CONSTRAINTS C1, ALL_CONSTRAINTS C2
WHERE C2.CONSTRAINT_NAME = C1.R_CONSTRAINT_NAME
AND UPPER(C1.OWNER) LIKE '**MY_SCHEMA**'
AND C1.CONSTRAINT_TYPE='R'
AND UPPER(C1.TABLE_NAME) LIKE '**X**'
ORDER BY C1.TABLE_NAME
因此,如果有人可以帮助我至少构思查询以获得此结果:
表1 | 表2 | 加入CollumnofTable1 | 加入表 2 的列
为此,我推测要加入ALL_CONSTRAINTS的另一个表 是ALL_CON_COLUMNS 但我发现的问题是复合主键。