Tenho a sensação de que há alguma diferença entre dois grandes esquemas complicados do Oracle que devem ser idênticos, então decidi despejá-los e diferenciá-los para investigar. Encontrei um artigo ( http://www.dba-oracle.com/art_builder_get_schema_syntax.htm ) que fornece os seguintes comandos para despejar as definições de tabela 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;
No entanto, quando eu despejei e diferenciei o spool da saída dos esquemas, havia diferenças triviais em quase todas as linhas, tornando a diferença inútil. Por exemplo, o nome do esquema está incluído em cada definição de tabela.
Existe uma maneira melhor de fazer isso que fornecerá os dados mais importantes do esquema em um formato que possa ser comparado facilmente usando uma ferramenta diff. Estou interessado em tabelas, índices e gatilhos.
Estou usando o Oracle Database 10g Enterprise Edition Release 10.2.0.3.0
você não precisa de nada disso.
otn.oracle.com
A Oracle possui uma ferramenta gratuita chamada SQL Developer. possui uma diferença de esquema.
fonte
Você pode usar o TOAD é uma ótima ferramenta genérica para o desenvolvimento do Oracle. Existe uma versão de teste para teste. Na lista de recursos:
Outro produto que você pode testar é o OraPowerTools :
Como alternativa gratuita, você pode conferir este artigo do CodeProject: Schema Compare Tool for Oracle
1 : 1 : http://www.toadsoft.com/toad_oracle.htm
fonte
Utilizamos o DKGAS 'DBDiff for Oracle' , que pode comparar um esquema inteiro ou parte dele (tabelas, sequências, índices, restrições, privilégios, pacotes, objetos e dados), como um relatório de comparação ou como um script de atualização.
Usamos esse último como base para scripts de atualização de banco de dados.
fonte
Se você puder executar o Perl, poderá ver o SQLFairy , que deve produzir um dump do seu esquema como SQL. Você pode usar ferramentas de difusão de texto padrão. Há também uma ferramenta que pega dois esquemas e produz os comandos ALTER para torná-los idênticos.
fonte
Se você tiver algum dinheiro para gastar, considere usar o PowerDIFF for Oracle: http://www.orbit-db.com . Esta ferramenta compara tabelas, índices e gatilhos de forma excelente e vem com várias opções de comparação para personalizar a operação 'diff'. Um script de diferença total (comandos DDL e DML) é gerado opcionalmente. Você precisa de um driver ODBC para se conectar ao banco de dados.
fonte