J'ai le sentiment qu'il y a une différence entre deux grands schémas Oracle compliqués qui devraient être identiques, j'ai donc décidé de les vider et de les différencier pour enquêter. J'ai trouvé un article ( http://www.dba-oracle.com/art_builder_get_schema_syntax.htm ) qui donne les commandes suivantes pour vider les définitions de table et d'index.
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;
Cependant, lorsque j'ai vidé et différé la bobine de sortie des schémas, il y avait des différences triviales sur presque chaque ligne, ce qui rend la différence sans valeur. Par exemple, le nom du schéma est inclus dans chaque définition de table.
Existe-t-il une meilleure façon de le faire qui fournira les données de schéma les plus importantes dans un format qui peut être facilement comparé à l'aide d'un outil de comparaison. Je m'intéresse aux tables, aux index et aux déclencheurs.
J'utilise Oracle Database 10g Enterprise Edition version 10.2.0.3.0
vous n'avez besoin de rien de tout cela.
otn.oracle.com
Oracle dispose d'un outil gratuit appelé SQL Developer. il a un schéma différent.
la source
Vous pourriez utiliser TOAD est un excellent outil générique pour le développement Oracle. Il existe une version d'essai pour les tests. Dans la liste des fonctionnalités:
Un autre produit que vous pouvez tester est OraPowerTools :
Comme alternative gratuite, vous pouvez consulter cet article CodeProject: Outil de comparaison de schéma pour Oracle
1 : 1 : http://www.toadsoft.com/toad_oracle.htm
la source
Nous utilisons le DKGAS 'DBDiff for Oracle' , il peut comparer un schéma entier ou une partie de celui-ci (tables, séquences, index, contraintes, privilèges, packages, objets et données), soit comme rapport de comparaison soit comme script de mise à niveau.
Nous utilisons ce dernier comme base pour les scripts de mise à niveau de la base de données.
la source
Si vous pouvez exécuter Perl, vous pouvez regarder SQLFairy , qui devrait être capable de produire un vidage de votre schéma en tant que SQL. Vous pouvez ensuite utiliser des outils de différenciation de texte standard. Il existe également un outil qui prendra deux schémas et produira les commandes ALTER pour les rendre identiques.
la source
Si vous avez de l'argent à dépenser, pensez à utiliser PowerDIFF pour Oracle: http://www.orbit-db.com . Cet outil compare parfaitement les tables, les index et les déclencheurs et est livré avec un certain nombre d'options de comparaison pour personnaliser l'opération «diff». Un script de différence totale (commandes DDL et DML) est généré en option. Vous avez besoin d'un pilote ODBC pour vous connecter à la base de données.
la source