Tengo la sensación de que hay alguna diferencia entre dos grandes esquemas complicados de Oracle que deberían ser idénticos, así que decidí volcarlos y diferenciarlos para investigar. Encontré un artículo ( http://www.dba-oracle.com/art_builder_get_schema_syntax.htm ) que proporciona los siguientes comandos para volcar las definiciones de tabla e índice.
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;
Sin embargo, cuando volqué y difundí el carrete de la salida de los esquemas, hubo diferencias triviales en casi todas las líneas, lo que hizo que la diferencia no tuviera valor. Por ejemplo, el nombre del esquema se incluye en cada definición de tabla.
¿Hay alguna manera mejor de hacer esto que proporcione los datos de esquema más importantes en un formato que se pueda comparar fácilmente con una herramienta diff. Estoy interesado en tablas, índices y disparadores.
Estoy usando Oracle Database 10g Enterprise Edition Release 10.2.0.3.0
No necesitas nada de esto.
otn.oracle.com
Oracle tiene una herramienta gratuita llamada SQL Developer. tiene un esquema diff.
fuente
Podría usar TOAD es una gran herramienta genérica para el desarrollo de Oracle. Hay una versión de prueba para probar. De la lista de características:
Otro producto que podría probar es OraPowerTools :
Como alternativa gratuita, puede consultar este artículo de CodeProject: Schema Compare Tool for Oracle
1 : 1 : http://www.toadsoft.com/toad_oracle.htm
fuente
Utilizamos el 'DBDiff para Oracle' de DKGAS , puede comparar un esquema completo o parte del mismo (tablas, secuencias, índices, restricciones, privilegios, paquetes, objetos y datos), ya sea como un informe de comparación o como un script de actualización.
Usamos este último como base para los scripts de actualización de la base de datos.
fuente
Si puede ejecutar Perl, puede mirar SQLFairy , que debería poder generar un volcado de su esquema como SQL. A continuación, puede utilizar herramientas de texto estándar diferentes. También hay una herramienta que tomará dos esquemas y producirá los comandos ALTER para hacerlos idénticos.
fuente
Si tiene algo de dinero para gastar, considere usar PowerDIFF para Oracle: http://www.orbit-db.com . Esta herramienta compara tablas, índices y disparadores excelentemente y viene con una serie de opciones de comparación para personalizar la operación 'diff'. Opcionalmente, se genera un script de diferencia total (comandos DDL y DML). Necesita un controlador ODBC para conectarse a la base de datos.
fuente