Перемещение данных из SQL Server в Oracle неоднократно - PullRequest
11 голосов
/ 20 февраля 2009

Каковы наиболее разумные способы регулярного перемещения табличных данных из SQL Server в Oracle (на * nix)?

Ответы [ 6 ]

9 голосов
/ 20 февраля 2009

Использование служб интеграции SQL Server (SSIS), вероятно, является лучшим выбором. Если вы не знакомы с службами SSIS, лучший способ попробовать что-либо - воспользоваться мастером экспорта SQL Server и создать для него пакет служб SSIS. Например, если вы зайдете в SQL Server Management Studio и щелкните правой кнопкой мыши на своей базе данных, затем выберите Задачи-> Экспорт данных. Оттуда нажимайте дальше, пока не дойдете до шага «Выберите пункт назначения». Выберите «Поставщик Microsoft OLE DB для Oracle» и нажмите «Свойства», чтобы определить подключение к базе данных. При щелчке по мастеру на странице «Сохранить и выполнить» обязательно установите флажок «Сохранить пакет служб SSIS», на следующем экране укажите, где сохранить пакет служб SSIS. После завершения работы мастера экспорта ваши данные будут экспортированы, и у вас будет пакет служб SSIS, который вы сможете использовать как есть, или настроить его, чтобы выполнить более конкретные действия. Получив пакет служб SSIS, вы можете запланировать его, создав задание агента SQL Server.

6 голосов
/ 20 февраля 2009
  • Oracle Гетерогенное подключение / Шлюзы баз данных в сочетании с материализованным представлением (ями), PL / SQL или Java
  • SSIS или DTS : и то, и другое можно запланировать, но для доступа к SQL Server требуется доступ не только для чтения
  • Java (возможно, в Oracle, но не обязательно в ОС), использующая ODBC или SQLJ для доступа к SQL Server и, возможно, Oracle
  • SQL Server планируется экспортировать в CSV, Oracle планирует импортировать из CSV
  • Любой из других инструментов ETL (например, Informatica, Cognos)
  • Любой из множества языков, которые могут получить доступ к обеим базам данных (но для их запуска потребуется поддержка третьей среды)

Планирование:

  • Автоматически / не требуется с материализованными представлениями
  • Oracle DBMS_JOB / DBMS_SCHEDULER
  • Зависит от ОС (cron, запланированные задачи Windows и т. Д.)
  • В случае экспорта служб SSIS, DTS или CSV, запланированного на SQL Server
2 голосов
/ 21 февраля 2009

Создать ссылку на базу данных с Oracle на Sql Server (гетерогенное соединение). Вы можете использовать эту ссылку для извлечения данных из Sql Server с помощью простого оператора select. Если вы хотите запланировать, вы можете использовать материализованное представление или dbms_scheduler.

Альтернативой является помещение ваших данных в CSV-файл, вы можете использовать внешнюю таблицу или sqlloader для загрузки этих данных в базу данных Oracle.

2 голосов
/ 20 февраля 2009

Вы можете иметь интерфейс SQL Server с Oracle напрямую через SSIS (или DTS для 2k). Это обеспечит функциональность ETL и может быть запланировано на регулярной основе.

1 голос
/ 26 мая 2017

Вот что я делаю: Подключитесь к SQL Server от разработчика Oracle SQL по этой ссылке: https://kentgraziano.com/2013/01/14/tech-tip-connect-to-sql-server-using-oracle-sql-developer/

После добавления SQL jar вы увидите вкладку SQL Server в окне подключения:

enter image description here

Затем подключитесь к экземпляру SQL.

Затем откройте экземпляр SQL и выберите базу данных или таблицу, которую вы хотите скопировать. Щелкните правой кнопкой мыши по любой базе данных / таблице, затем щелкните там «копировать в оракул» и выберите нужного пользователя [база данных] в «Имя целевого соединения», куда вы хотите скопировать свои таблицы.

Вы также можете изменить некоторые свойства там. Нажмите «ОК» и все.

Дайте мне знать, если возникнут какие-либо вопросы.

1 голос
/ 21 февраля 2009

Я успешно создал связанный сервер (я думаю, из Enterprise Manager) для Oracle на стороне SQL Server. Тогда я мог бы использовать обычные хранимые процедуры с обеих сторон для выполнения меньшего перемещения данных и обновлений в обоих направлениях. Этот подход может обойти необходимость пытаться собрать что-то вместе вне баз данных.

Старайтесь использовать последний возможный клиент Oracle на стороне SQL Server, хотя. Я вспоминаю некоторые дефекты в клиенте 10.2.0.2, и для получения клиента 10.2.0.4 требовалась ваша «официальная» регистрация или номер покупки Oracle или что-то в этом роде.

Для перемещений больших данных (или, возможно, даже перемещений / обновлений, которые вы хотите делать ежедневно или реже), обязательно используйте один из инструментов ETL. У нас была Informatica для наших процессов ETL, но если SSIS может выполнить то, что вам нужно, это тоже хорошо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...