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