В настоящее время я начинаю проект по миграции 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 сильно отличаются как с точки зрения администрирования, так и с точки зрения использования базы данных.
Будьте готовы потратить немало времени на портирование. Некоторые из проблем, которые не у меня в голове:
Сами языки достаточно различаются, чтобы потребовать значительных усилий по переносу ваших скриптов и хранимых процедур. Это варьируется от таких вещей, как разные операторы конкатенации (||
vs. +
), к изменениям в названиях функций и тонкостях (NVL
vs. COALESCE
), к концептуальным различиям (обработка исключений, чувствительность к регистру). Еще несколько примеров:
Большинство действий, которые вы делали в Oracle с помощью курсоров, выполняется в SQL Server с использованием временных таблиц.
Они в основном эквивалентны, но вам придется изменить синтаксис любых процедур, использующих их.
В основном они имеют одни и те же функции, иногда под разными названиями с разными побочными эффектами. Некоторые основные моменты:
Короче говоря, при переходе от Oracle к SQL Server (или наоборот) кривая обучения достаточно велика. Не стесняйтесь добавлять в этот список.
Я предпочитаю сторонние приложения для миграции моих данных, я использую загрузчик данных, когда я переносил MS SQL на Foxpro, он отлично работает и может переносить практически любую базу данных.
Скачать бесплатно : http://www.dbload.com
Этот видеоурок по теме "Переход с Oracle на SQL Server на 80% меньше усилий"может дать вам полную картину.
URL видео: http://wtv.watchtechvideos.com/topic307.html