У меня такое чувство, что между двумя большими сложными схемами Oracle, которые должны быть идентичными, есть некоторая разница, поэтому я решил проанализировать их и проанализировать. Я нашел статью ( http://www.dba-oracle.com/art_builder_get_schema_syntax.htm ), в которой приводятся следующие команды для вывода таблицы и определения индекса.
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;
Тем не менее, когда я выкидывал и выводил из буфера выходные схемы, были почти тривиальные различия почти в каждой строке, что делало разницу бесполезной. Например, имя схемы включено в каждое определение таблицы.
Есть ли лучший способ сделать это, который даст наиболее важные данные схемы в формате, который можно легко сравнить с помощью инструмента сравнения. Меня интересуют таблицы, индексы и триггеры.
Я использую Oracle Database 10g Enterprise Edition Release 10.2.0.3.0
Вам не нужно ничего из этого.
otn.oracle.com
У Oracle есть бесплатный инструмент под названием SQL Developer. у него есть схема diff.
источник
Вы можете использовать TOAD - отличный инструмент для разработки Oracle. Есть пробная версия для тестирования. Из списка возможностей:
Еще один продукт, который вы можете протестировать, это OraPowerTools :
В качестве бесплатной альтернативы вы можете проверить эту статью CodeProject: Schema Compare Tool для Oracle
1 : 1 : http://www.toadsoft.com/toad_oracle.htm
источник
Мы используем DKGAS 'DBDiff for Oracle' , он может сравнивать всю схему или ее часть (таблицы, последовательности, индексы, ограничения, привилегии, пакеты, объекты и данные) в качестве отчета сравнения или в качестве сценария обновления.
Мы используем в качестве последнего в качестве основы для сценариев обновления базы данных.
источник
Если вы умеете запускать Perl, вы можете взглянуть на SQLFairy , который должен иметь возможность создавать дамп вашей схемы как SQL. Вы можете использовать стандартные инструменты для разметки текста. Существует также инструмент, который возьмет две схемы и выдаст команды ALTER, чтобы сделать их идентичными.
источник
Если у вас есть немного денег, рассмотрите возможность использования PowerDIFF для Oracle: http://www.orbit-db.com . Этот инструмент превосходно сравнивает таблицы, индексы и триггеры и поставляется с рядом опций сравнения для настройки операции 'diff'. Сценарий полной разницы (команды DDL и DML) генерируется опционально. Вам нужен драйвер ODBC для подключения к базе данных.
источник