Ich habe das Gefühl, dass es einen Unterschied zwischen zwei großen, komplizierten Oracle-Schemata gibt, die identisch sein sollten. Ich habe einen Artikel gefunden ( http://www.dba-oracle.com/art_builder_get_schema_syntax.htm ), der die folgenden Befehle enthält, um die Tabellen- und Indexdefinitionen zu sichern.
SELECT DBMS_METADATA.GET_DDL('TABLE',u.table_name) FROM USER_TABLES u;
SELECT DBMS_METADATA.GET_DDL('INDEX',u.index_name) FROM USER_INDEXES u;
Als ich jedoch die Ausgabeschemata ausgegeben und verteilt habe, gab es in fast jeder Zeile geringfügige Unterschiede, die den Unterschied wertlos machten. Beispielsweise ist der Schemaname in jeder Tabellendefinition enthalten.
Gibt es eine bessere Möglichkeit, um die wichtigsten Schemadaten in einem Format zu erhalten, das mit einem Diff-Tool einfach verglichen werden kann? Ich interessiere mich für Tabellen, Indizes und Trigger.
Ich verwende Oracle Database 10g Enterprise Edition Release 10.2.0.3.0
du brauchst nichts davon.
otn.oracle.com
Oracle hat ein kostenloses Tool namens SQL Developer. es hat ein schema diff.
quelle
Sie könnten TOAD verwenden, ein großartiges generisches Tool für die Oracle-Entwicklung. Es gibt eine Testversion zum Testen. Aus der Featureliste:
Ein weiteres Produkt, das Sie testen können, ist OraPowerTools :
Als kostenlose Alternative können Sie diesen CodeProject-Artikel lesen: Schema Compare Tool for Oracle
1 : 1 : http://www.toadsoft.com/toad_oracle.htm
quelle
Wir verwenden das DKGAS 'DBDiff for Oracle' , das ein gesamtes Schema oder einen Teil davon (Tabellen, Sequenzen, Indizes, Einschränkungen, Berechtigungen, Pakete, Objekte und Daten) entweder als Vergleichsbericht oder als Upgrade-Skript vergleichen kann.
Wir verwenden als letztere die Basis für Datenbank-Upgrade-Skripte.
quelle
Wenn Sie in der Lage sind, Perl auszuführen, können Sie sich SQLFairy ansehen , das einen Speicherauszug Ihres Schemas als SQL erstellen sollte. Sie können dann Standardwerkzeuge zum Vergleichen von Texten verwenden. Es gibt auch ein Tool, das zwei Schemata verwendet und die ALTER-Befehle erzeugt, um sie identisch zu machen.
quelle
Wenn Sie etwas Geld ausgeben müssen, ziehen Sie die Verwendung von PowerDIFF für Oracle in Betracht: http://www.orbit-db.com . Dieses Tool vergleicht Tabellen, Indizes und Trigger hervorragend und bietet eine Reihe von Vergleichsoptionen, um die Diff-Operation anzupassen. Optional wird ein Gesamtdifferenzskript (DDL- und DML-Befehle) generiert. Sie benötigen einen ODBC-Treiber, um eine Verbindung zur Datenbank herzustellen.
quelle