У меня есть таблица с тремя полями, одно поле идентификатора, и мне нужно добавить несколько новых записей из источника, у которого есть два других поля. Я использую SSIS, и я думаю, что я должен использовать инструмент слияния, потому что один из источников не находится в локальной базе данных. Но меня смущает инструмент слияния и правильный процесс.
У меня есть один источник (таблица Oracle), и я получаю два поля, well_id и well_name, с сортировкой после, сортировка по well_id. У меня есть таблица назначения (сервер sql), и я также использую ее в качестве источника. Он имеет три поля: well_key (идентификационное поле), well_id и well_name, и у меня есть задача сортировки, сортирующая по well_id. Оба из них являются входными данными для моей задачи слияния. Я собирался вывести во временную таблицу, а затем каким-то образом получить новые записи обратно в таблицу сервера SQL.
Oracle Well SQL Well
| |
V V
Sort Source Sort Well
| |
-------> Merge* <-----------
|
V
Temp well table
Я подозреваю, что это не лучший способ использовать этот инструмент. Каковы правильные шаги для такого слияния?
Одна из причин, по которой я подверг сомнению этот метод, заключается в том, что в моем слиянии произошла ошибка, сообщающая, что «вход слияния 2» должен быть отсортирован, но его источник является задачей сортировки, поэтому он сортируется.
Пример данных
SQL Well (before merge)
well_key well_id well_name
1 123 well k
2 292 well c
3 344 well t
5 439 well d
Oracle Well
well_id well_name
123 well k
292 well c
311 well y
344 well t
439 well d
532 well j
SQL Well (after merge)
well_key well_id well_name
1 123 well k
2 292 well c
3 344 well t
5 439 well d
6 311 well y
7 532 well j
Было бы лучше загрузить мой Oracle Well во временный локальный файл, а затем просто использовать для него SQL-вставку с записью?