Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Liste der Fremdschlüssel und der Tabellen, auf die sie in Oracle DB verweisen

Der referenzierte Primärschlüssel wird in den Spalten r_owner beschrieben und r_constraint_name der Tabelle ALL_CONSTRAINTS . Dadurch erhalten Sie die gewünschten Informationen:

SELECT a.table_name, a.column_name, a.constraint_name, c.owner, 
       -- referenced pk
       c.r_owner, c_pk.table_name r_table_name, c_pk.constraint_name r_pk
  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 = :TableName