War es hilfreich?

Lösung

Nein. Es gibt keine solche Option von Oracle SQL Developer.

Sie haben eine Abfrage von Hand auszuführen oder ein anderes Werkzeug verwenden (zum Beispiel PLSQL Entwickler hat solche Option). Die folgende SQL ist, dass man von PLSQL Entwickler verwendet:

select table_name, constraint_name, status, owner
from all_constraints
where r_owner = :r_owner
and constraint_type = 'R'
and r_constraint_name in
 (
   select constraint_name from all_constraints
   where constraint_type in ('P', 'U')
   and table_name = :r_table_name
   and owner = :r_owner
 )
order by table_name, constraint_name

Wo r_owner ist das Schema, und r_table_name ist die Tabelle, für die Sie nach Referenzen suchen. Die Namen sind Groß- und Kleinschreibung


Seien Sie vorsichtig, weil auf der Registerkarte Berichte von Oracle SQL Developer gibt die Option „Alle Tabellen / Abhängigkeiten“ Das ist von ALL_DEPENDENCIES wo die „ Abhängigkeiten zwischen Prozeduren, Pakete, Funktionen, Paketkörper und löst zugänglich für den aktuellen Benutzer, einschließlich Abhängigkeiten von ohne Datenbank-Links Ansichten erstellt. ". Dann hat dieser Bericht keinen Wert für Ihre Frage.

Andere Tipps

Dieser Entwickler zu SQL hinzuzufügen als eine Erweiterung Folgendes tun:

  1. Speichern Sie den folgenden Code in einer XML-Datei (z fk_ref.xml):
<items>
    <item type="editor" node="TableNode" vertical="true">
    <title><![CDATA[FK References]]></title>
    <query>
        <sql>
            <![CDATA[select a.owner,
                            a.table_name,
                            a.constraint_name,
                            a.status
                     from   all_constraints a
                     where  a.constraint_type = 'R'
                            and exists(
                               select 1
                               from   all_constraints
                               where  constraint_name=a.r_constraint_name
                                      and constraint_type in ('P', 'U')
                                      and table_name = :OBJECT_NAME
                                      and owner = :OBJECT_OWNER)
                               order by table_name, constraint_name]]>
        </sql>
    </query>
    </item>
</items>
  1. Fügen Sie die Erweiterung zu SQL Developer:

    • Extras> Einstellungen
    • Datenbank> Benutzerdefinierte Erweiterungen
    • Klicken Sie auf "Zeile hinzufügen" Taste
    • In Type "Editor", Ort ist, wo Sie die XML-Datei gespeichert oben
    • Klicken Sie auf "OK" starten Sie SQL Developer
  2. auf jeden Tisch Navigieren und Sie sollen jetzt eine zusätzliche Registerkarte neben SQL ein, etikettierten FK Referenzen, die zeigen die neuen FK Informationen.

  3. siehe
  4. Referenz

Ersetzen Sie [Ihre TABLE] mit emp in der Abfrage unter

select owner,constraint_name,constraint_type,table_name,r_owner,r_constraint_name
  from all_constraints 
 where constraint_type='R'
   and r_constraint_name in (select constraint_name 
                               from all_constraints 
                              where constraint_type in ('P','U') 
                                and table_name='[YOUR TABLE]');

SQL Developer 4.1, die im Mai 2015 veröffentlicht, hinzugefügt, um eine Registerkarte Modell der Tabelle Fremdschlüssel zeigt, die in einem Entity-Relationship-Diagramm-Format auf Ihre Tabelle beziehen.

Unter Umständen können Sie diese aus der ALL_CONSTRAINTS Ansicht abzufragen:

SELECT table_name
FROM ALL_CONSTRAINTS
WHERE constraint_type = 'R' -- "Referential integrity"
  AND r_constraint_name IN
    ( SELECT constraint_name
      FROM ALL_CONSTRAINTS
      WHERE table_name = 'EMP'
        AND constraint_type IN ('U', 'P') -- "Unique" or "Primary key"
    );

Wie wäre es etwa so:

SELECT c.constraint_name, c.constraint_type, c2.constraint_name, c2.constraint_type, c2.table_name
  FROM dba_constraints c JOIN dba_constraints c2 ON (c.r_constraint_name = c2.constraint_name)
 WHERE c.table_name = <TABLE_OF_INTEREST>
   AND c.constraint_TYPE = 'R';
SELECT DISTINCT table_name, 
                constraint_name, 
                column_name, 
                r_table_name, 
                position, 
                constraint_type 
FROM   (SELECT uc.table_name, 
               uc.constraint_name, 
               cols.column_name, 
               (SELECT table_name 
                FROM   user_constraints 
                WHERE  constraint_name = uc.r_constraint_name) r_table_name, 
               (SELECT column_name 
                FROM   user_cons_columns 
                WHERE  constraint_name = uc.r_constraint_name 
                       AND position = cols.position)           r_column_name, 
               cols.position, 
               uc.constraint_type 
        FROM   user_constraints uc 
               inner join user_cons_columns cols 
                       ON uc.constraint_name = cols.constraint_name 
        WHERE  constraint_type != 'C') 
START WITH table_name = '&&tableName' 
           AND column_name = '&&columnName' 
CONNECT BY NOCYCLE PRIOR table_name = r_table_name 
                         AND PRIOR column_name = r_column_name; 

Dies ist im Produkt seit Jahren -. Obwohl es nicht in dem Produkt im Jahr 2011

Aber, klicken Sie einfach auf das Modell Seite.

Achten Sie darauf, auf mindestens die Version 4.0 sind (im Jahr 2013 veröffentlicht), um diese Funktion zuzugreifen.

auf die obige Antwort für SQL Developer Plugin hinzuzufügen, die unter Verwendung von XML wird in immer der Säule mit dem Fremdschlüssel zugeordnet helfen.

    <items>
        <item type="editor" node="TableNode" vertical="true">
        <title><![CDATA[FK References]]></title>
        <query>
            <sql>
                <![CDATA[select a.owner,
                                a.constraint_name,
                                a.table_name,
                                b.column_name,
                                a.status
                         from   all_constraints a
                         join   all_cons_columns b ON b.constraint_name = a.constraint_name
                         where  a.constraint_type = 'R'
                                and exists(
                                   select 1
                                   from   all_constraints
                                   where  constraint_name=a.r_constraint_name
                                          and constraint_type in ('P', 'U')
                                          and table_name = :OBJECT_NAME
                                          and owner = :OBJECT_OWNER)
                                   order by table_name, constraint_name]]>
            </sql>
        </query>
        </item>
    </items>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top