Перенос данных Oracle в разные схемы
В моей базе данных Oracle 11 у меня есть две схемы с немного разными моделями данных (целевая схема пуста, а имена столбцов и таблиц на другом языке)
Я хочу перенести данные из одного в другой. У меня около 15 таблиц, поэтому имена столбцов и таблиц необходимо сопоставлять друг с другом, некоторые таблицы необходимо объединить в одну новую таблицу в целевой схеме и т. Д., А затем перенести данные.
Нужно ли делать это вручную с помощью сценариев или есть какая-то помощь, которую я могу получить от Oracle SqlDeveloper? или что-нибудь еще, чтобы помочь картированию?
2 ответа
Поскольку имена таблиц и столбцов должны отображаться, это, безусловно, должно включать в себя ручную работу. Лично я просто использовал бы простой SQL для отображения структуры и копирования данных, как вы уже предлагали, особенно если целевая база данных пуста - так что это просто простая вставка.
Если вам нужен инструмент для этого, вы можете попробовать dbForge Data Compare. Я не использовал его, поэтому не могу сказать наверняка, но на странице возможностей говорится, что:
- Функция сопоставления пользователей позволяет сравнивать таблицы с разными именами и набором столбцов.
- Сопоставить одну таблицу в источнике с двумя или более таблицами в цели (полезно, когда таблица была разбита)
так что, возможно, это может помочь вам.
Это потребует некоторой ручной работы, либо путем сравнения двух репозиториев с домашним скриптом, либо с помощью хорошего инструмента CASE.
Или используйте Dell TOAD. Опция DBA в TOAD позволяет сравнивать две схемы и генерировать сценарии, которые изменяют структуру схемы 1 в структуру схемы 2 (или наоборот). Смотрите документацию TOAD
Когда это одноразовое упражнение, я бы использовал TOAD для генерации SQL и вручную адаптировал его при необходимости.
Если это повторяющаяся проблема, вы можете разработать свои собственные сценарии или приобрести хорошую отправную точку.