如何在甲骨文中查找键中的外语引用列?



>我正在尝试找出如何查找外键引用的列的名称。

下面是一个演示示例,请记住,我正在尝试为数百个表动态查找此内容。

  • 控件
    • 身份证
    • COMPONENT_ID
  • .PART
    • 身份证
    • 名字
    • ....

WIDGET.COMPONENT_IDPART.ID的外键

我有一个查询来查找PART(表名(,但我无法弄清楚如何从WIDGET_COMPONENT_ID中找到PART.ID

编辑:

我正在尝试找出引用的列名称。 我可以找到表名,但无法弄清楚如何找到列名。

编辑2:

(sql 来自外键列表及其引用的表( 例如,我可以通过以下方式获取约束名称:

SELECT c_pk.constraint_name, c_pk.table_name r_table_name FROM all_cons_columns a JOIN all_constraints c ON a.owner = c.owner AND a.constraint_name = c.constraint_name JOIN all_constraints c_pk ON c.r_owner = c_pk.owner AND c.r_constraint_name = c_pk.constraint_name WHERE c.constraint_type = 'R' AND a.table_name = 'WIDGET'

这让我有点像COMPONENT_ID_FKPART. 如何从COMPONENT_ID_FKPART.ID虽然我不确定。

此查询帮助我获取了所需的信息:

SELECT * FROM all_cons_columns WHERE constraint_name IN ( SELECT c_pk.constraint_name FROM all_cons_columns a JOIN all_constraints c ON a.owner = c.owner AND a.constraint_name = c.constraint_name JOIN all_constraints c_pk ON c.r_owner = c_pk.owner AND c.r_constraint_name = c_pk.constraint_name WHERE c.constraint_type = 'R' AND a.column_name = 'COMPONENT_ID' AND a.table_name = 'WIDGET' )

最新更新