Как перенести данные из базы данных SQL Server в базу данных Oracle - PullRequest
3 голосов
/ 24 февраля 2011

Текущее приложение, над которым я работаю, позволяет call X - это приложение для архивирования данных, которое хранится в другом приложении, скажем, Y. Оба очень старые приложения, разработанные около 8 с лишним лет назад.До сих пор, читая документацию, я узнал, что процесс передачи используемых данных заключается в том, что снимок таблицы базы данных SQL Server создается в виде плоских файлов, а затем эти плоские файлы переносятся в ftp-файл в правильный ящик unix, где через ctlдля базы данных Oracle создаются различные операторы вставки, и именно так эти данные передаются.Он использует утилиту BCP.Я хотел знать, есть ли лучший и более быстрый способ, которым это могло бы быть достигнуто.Должен быть способ передачи данных напрямую, я чувствую, что весь процесс переноса их в файлы и последующей передачи и вставки должен быть очень медленным и кропотливым.Любые идеи ???

Ответы [ 2 ]

2 голосов
/ 24 февраля 2011

Создайте ссылку DB из базы данных Oracle на базу данных SQL Server, и вы можете передавать данные с помощью операций выбора / вставки.

Запланируйте процесс, используя DBMS_SCHEDULER , если это необходимо делать периодически.

1 голос
/ 24 февраля 2011

вы можете читать данные от множества различных поставщиков баз данных, используя гетерогенные сервисы. Чтобы использовать это, вы создаете сервис на Unix-боксе, который использует - в данном случае - odbc для подключения к базе данных SQL Server.

Вы определяете эту службу в listener.ora и создаете псевдоним tns, который указывает на эту службу. Псевдоним выглядит довольно нормально, за исключением дополнительной строки (hs = ok). В вашей базе данных вы создаете ссылку на базу данных, которая использует этот псевдоним tns в качестве строки подключения.

UnixODBC в сочетании с драйвером FreeTDS работает отлично. Точные детали варьируются в зависимости от выпуска, для 10g ищите hs4odbc, 11g dg4odbc.

...