Wie erhalte ich ein Oracle SCHEMA als DDL-Skripte mit DBMS_METADATA (und SCHEMA_EXPORT)

8

Ich habe Probleme, die DDL für ein bestimmtes Schema mit DBMS_METADATA zu extrahieren, wahrscheinlich, weil mein Verständnis davon falsch ist.

Folgendes mache ich im Grunde:

%Vor%

Ich hatte den Eindruck, dass diese Methode die "CREATE TABLE" -Anweisungen in einer solchen Reihenfolge zurückgeben würde, dass sie erstellt werden könnten, dh abhängige Tabellen würden später ausgegeben werden.

Es stellt sich jedoch heraus, dass die Reihenfolge der Tabellen willkürlich ist, da einige Tabellen mit einer Fremdschlüsseleinschränkung ausgegeben werden, die auf eine Tabelle verweist, die nicht ausgegeben wurde.

Um dieses Problem zu "lösen", habe ich die REF_CONSTRAINT und CONSTRAINTS_AS_ALTER auf "false" bzw. "true" gesetzt, weil ich annahm, dass dies mein Problem verschwinden lassen würde. Was nicht der Fall ist.

Also, gibt es eine Arbeit für mein Problem, oder gibt es eine Einstellung, die ich übersehen habe?

    
René Nyffenegger 29.06.2010, 07:19
quelle

1 Antwort

1

Nicht so sehr eine Antwort als eine Beobachtung. Es ist technisch möglich (aber in der Praxis wahrscheinlich doof), zirkuläre Referenzen in Zwangsbedingungen zu haben.

%Vor%

Ich könnte also verstehen, wenn sie das entschieden haben, weil es nicht unbedingt immer erreichbar ist, würden sie sich nicht darum kümmern, die Objekte in Abhängigkeitsreihenfolge zu setzen.

Als solche würde ich die referenziellen Einschränkungen beim Erstellen von Tabellen auslassen und sie dann als ALTERs anwenden, nachdem alle Tabellen erstellt wurden.

    
Gary Myers 29.06.2010 23:06
quelle

Tags und Links