Назад | Перейти на главную страницу

Переход с Oracle на SQL

В настоящее время я начинаю проект по миграции Oracle на SQL 2008. Поскольку в настоящее время я читаю официальное руководство SSMA по переходу с Oracle на SQL Server 2005, мне нужны советы и подсказки из личного опыта.

Руководства и статьи с организованным выделением возникших проблем, обсуждения и решения будут приветствоваться.

Спасибо

Oracle и SQL Server обладают некоторыми неперекрывающимися функциями, и во многих отношениях они работают совершенно по-разному. Например:

  • Oracle не имеет прямого эквивалента столбцу идентификаторов. Эквивалентные функции будут реализованы по-другому с использованием последовательностей.

  • PL / SQL и T-SQL - совершенно разные языки. Если у вас есть большой объем кода хранимой процедуры, будьте готовы потратить значительное количество времени на его перенос. Кроме того, идиомы t-sql часто существенно отличаются от PL / SQL.

    Например, T-SQL намного лучше справляется с настройками, чем PL / SQL, а PL / SQL гораздо лучше справляется с курсорами (например, с конструкциями параллельного цикла). Некоторые вещи, выполняемые итеративно в PL / SQL, вероятно, лучше выполнять с помощью таблиц set ops и temp в T-SQL.

  • При сравнении в SQL Server по умолчанию регистр не учитывается. При сравнении в Oracle учитывается регистр.

  • Работа с разделами таблиц в SQL Server совсем другая (и несколько более неуклюжая), чем в Oracle.

У Microsoft есть полный набор ресурсов, которые помогут перенести приложения и базы данных с Oracle на SQL Server 2008. Загляните на главную страницу миграции по адресу Решения SQL Server 2008 - Миграция - он включает методологию миграции, инструменты, которые помогут вам, и некоторые отзывы клиентов.

Надеюсь это поможет.

Oracle и SQL Server сильно отличаются как с точки зрения администрирования, так и с точки зрения использования базы данных.

Использование базы данных

Будьте готовы потратить немало времени на портирование. Некоторые из проблем, которые не у меня в голове:

PL / SQL против T-SQL

Сами языки достаточно различаются, чтобы потребовать значительных усилий по переносу ваших скриптов и хранимых процедур. Это варьируется от таких вещей, как разные операторы конкатенации (|| vs. +), к изменениям в названиях функций и тонкостях (NVL vs. COALESCE), к концептуальным различиям (обработка исключений, чувствительность к регистру). Еще несколько примеров:

Курсоры и временные таблицы

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

Последовательности против идентичностей

Они в основном эквивалентны, но вам придется изменить синтаксис любых процедур, использующих их.

Администрирование базы данных

В основном они имеют одни и те же функции, иногда под разными названиями с разными побочными эффектами. Некоторые основные моменты:

  • (Un) загрузка данных (data pump или sql * loader или exp / imp против DTS или bcp)
  • Словари данных (DBA_ * против INFORMATION_SCHEMA)
  • Параметры журнала транзакций (ведение журнала архива или модель восстановления)
  • Типы таблиц (индексированные индексы и кластеризованные индексы)
  • Механизмы блокировки (чтение не блокируется в Oracle, а не в SQL-сервере)

Короче говоря, при переходе от Oracle к SQL Server (или наоборот) кривая обучения достаточно велика. Не стесняйтесь добавлять в этот список.

Я предпочитаю сторонние приложения для миграции моих данных, я использую загрузчик данных, когда я переносил MS SQL на Foxpro, он отлично работает и может переносить практически любую базу данных.

Скачать бесплатно : http://www.dbload.com

Этот видеоурок по теме "Переход с Oracle на SQL Server на 80% меньше усилий"может дать вам полную картину.

URL видео: http://wtv.watchtechvideos.com/topic307.html