【问题标题】:how to get full tables and columns with relations or not in ORACLE如何在 ORACLE 中获取具有关系的完整表和列
【发布时间】:2017-05-03 16:50:16
【问题描述】:

我怎样才能(左)加入 user_tab_columns 与 user_cons_columns 和 user_constraints 以获得以下结果:

表、列、SourceTable、SourceColumn
ORDER、ORDER_ID、空、空
订单,订单日期,空,空
ORDER、ORDER_CLIENT、CLIENT、CLIENT_ID
客户,CLIENT_ID,空,空
ORDER_DETAIL、ORDER_ID、ORDER、ORDER_ID
ORDER_DETAIL, PRODUCT_ID, PRODUCT, PRODUCT_ID
PRODUCT PRODUCT_ID,空,空

所以...我需要所有表和列,但是一旦列是外键, 我需要知道表和列(主键)相关。

【问题讨论】:

标签: oracle


【解决方案1】:

对链接答案的轻微修改:

List of foreign keys and the tables they reference all_ 到用户来源。

当然你可以只使用所有,然后过滤所有者。

SELECT a.table_name, a.column_name, a.constraint_name, c.owner, 
       c.r_owner, c_pk.table_name r_table_name, c_pk.constraint_name r_pk
  FROM user_cons_columns a
  LEFT JOIN user_constraints c 
    ON a.owner = c.owner
   AND a.constraint_name = c.constraint_name
  LEFT JOIN user_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 = :TableName

【讨论】:

    【解决方案2】:

    检查以下查询: select a.table_name,c1.column_name,b.table_name,c2.column_name from USER_constraints a,USER_constraints b,user_cons_columns c1,user_cons_columns c2 其中 a.r_constraint_name = b.constraint_name 和 a.table_name = c1.table_name 和 b.table_name = c2.table_name 如果您只需要 FK 约束,请在 where clouse 中使用 a.constraint_type ='R'。

    【讨论】:

      猜你喜欢
      • 2016-07-22
      • 1970-01-01
      • 2011-07-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-01
      • 2020-06-19
      • 1970-01-01
      相关资源
      最近更新 更多