Я не уверен, что понимаю, почему вы не можете выполнить прямую загрузку.
Если вы создаете ссылку на базу данных в целевой базе данных, которая указывает на исходную базу данных, вы можете затем поместить свою логику ETL в операторы SQL, которые SELECT
из исходной базы данных и INSERT
в целевую базу данных. Это избавляет от необходимости записывать данные в плоский файл, читать этот плоский файл, анализировать XML и т. Д., Что будет медленным и потребует достаточного количества кода. Таким образом, вы можете сосредоточиться на логике ETL и максимально эффективно переносить данные.
Вы можете написать SQL (или PL / SQL), который загружается непосредственно из старой структуры таблиц в старой базе данных в новую структуру таблиц в новой базе данных.
INSERT INTO new_table( <<list of columns>> )
SELECT a.col1, a.col2, ... , b.colN, b.colN+1
FROM old_table_1@link_to_source a,
old_table_2@link_to_source b
WHERE <<some join condition>>