Перенос данных Oracle в разные схемы

В моей базе данных Oracle 11 у меня есть две схемы с немного разными моделями данных (целевая схема пуста, а имена столбцов и таблиц на другом языке)

Я хочу перенести данные из одного в другой. У меня около 15 таблиц, поэтому имена столбцов и таблиц необходимо сопоставлять друг с другом, некоторые таблицы необходимо объединить в одну новую таблицу в целевой схеме и т. Д., А затем перенести данные.

Нужно ли делать это вручную с помощью сценариев или есть какая-то помощь, которую я могу получить от Oracle SqlDeveloper? или что-нибудь еще, чтобы помочь картированию?

2 ответа

Поскольку имена таблиц и столбцов должны отображаться, это, безусловно, должно включать в себя ручную работу. Лично я просто использовал бы простой SQL для отображения структуры и копирования данных, как вы уже предлагали, особенно если целевая база данных пуста - так что это просто простая вставка.

Если вам нужен инструмент для этого, вы можете попробовать dbForge Data Compare. Я не использовал его, поэтому не могу сказать наверняка, но на странице возможностей говорится, что:

  • Функция сопоставления пользователей позволяет сравнивать таблицы с разными именами и набором столбцов.
  • Сопоставить одну таблицу в источнике с двумя или более таблицами в цели (полезно, когда таблица была разбита)

так что, возможно, это может помочь вам.

Это потребует некоторой ручной работы, либо путем сравнения двух репозиториев с домашним скриптом, либо с помощью хорошего инструмента CASE.

Или используйте Dell TOAD. Опция DBA в TOAD позволяет сравнивать две схемы и генерировать сценарии, которые изменяют структуру схемы 1 в структуру схемы 2 (или наоборот). Смотрите документацию TOAD

Когда это одноразовое упражнение, я бы использовал TOAD для генерации SQL и вручную адаптировал его при необходимости.

Если это повторяющаяся проблема, вы можете разработать свои собственные сценарии или приобрести хорошую отправную точку.

Другие вопросы по тегам