ORACLE Tabellenverknüpfung feststellen

HeinerPyt

Erfahrenes Mitglied
Hallo,

gibt es einen Befehl mit dem ich bei einer ORACLE Datenbank feststellen kann, welche tabellen untereinander verknüpft sind Wenn ja welcher bzw. weiß jemand wie man das macht?

mfg
Heiner
 
Solche Infos bekommst du leicht aus dem Data Dictionary. Das sind Views die u.a. Informationen über alle Datenbankobjekte enthalten.

Für dich interessant sind wohl die Views
USER_CONSTRAINTS und
USER_CONS_COLUMNS

Über USER_CONSTRAINTS findest du raus, welche Constraints auf einer Tabelle liegen.
Also z.B. mit

Code:
SELECT DISTINCT CONSTRAINT_NAME 
FROM  USER_CONSTRAINTS 
WHERE  TABLE_NAME = 'myTABLE' 
AND    CONSTRAINT_TYPE = 'R';

Das 'R' ist wichtig, sonst bekommst du auch alle Namen der "NOT NULL" Constraints etc...

So, und über USER_CONS_COLUMNS kannst du nun die Spalten und Tabellen rausfinden, die mit diesen Constraints verknüpft sind, also:

Code:
SELECT * 
FROM    USER_CONS_COLUMNS 
WHERE   CONSTRAINT_NAME IN
  (  
     SELECT DISTINCT CONSTRAINT_NAME 
     FROM   USER_CONSTRAINTS 
     WHERE  TABLE_NAME = 'myTABLE' 
     AND    CONSTRAINT_TYPE = 'R'
  );

Hoffe das hilft weiter, ist allerdings ungetestet. Ziehe grade mit meiner Testdb um..
 
Zuletzt bearbeitet:
Zurück