Преобразование схем Oracle (OracleToSQL)

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

Процесс преобразования

Преобразование объектов базы данных принимает определения объектов из Oracle, преобразует их в аналогичные объекты SQL Server, а затем загружает эти сведения в метаданные SSMA. Сведения не загружаются в экземпляр SQL Server. Затем можно просмотреть объекты и их свойства в обозревателе метаданных SQL Server.

Во время преобразования SSMA выводит сообщения о результатах в области "Вывод" и сообщения об ошибках в области "Список ошибок". Используйте выходные данные и сведения об ошибках, чтобы определить, нужно ли изменять базы данных Oracle или процесс преобразования, чтобы получить нужные результаты преобразования.

Настройка параметров преобразования

Перед преобразованием объектов просмотрите параметры преобразования проекта в диалоговом окне "Параметры проекта". С помощью этого диалогового окна можно задать способ преобразования функций и глобальных переменных SSMA. Дополнительные сведения см. в разделе "Параметры проекта" (преобразование) (OracleToSQL).

Результаты преобразования

В следующей таблице показано, какие объекты Oracle преобразуются, и результирующий объект SQL Server:

Объекты Oracle Результирующий объект SQL Server
Функции Если функция может быть напрямую преобразована в инструкцию Transact-SQL, SSMA создает функцию.

В некоторых случаях функция должна быть преобразована в хранимую процедуру. В этом случае SSMA создает хранимую процедуру и функцию, которая вызывает хранимую процедуру.
Процедуры Если процедуру можно преобразовать непосредственно в инструкцию Transact-SQL, SSMA создает хранимую процедуру.

В некоторых случаях хранимая процедура должна вызываться в автономной транзакции. В этом случае SSMA создает две хранимые процедуры: одна из них реализует процедуру, вторая используется для вызова хранимой процедуры.
Пакеты SSMA создает набор хранимых процедур и функций с похожими именами объектов.
Последовательности SSMA создает объекты последовательности (SQL Server 2012 или SQL Server 2014) или эмулирует последовательности Oracle.
Таблицы с зависимыми объектами, такими как индексы и триггеры SSMA создает таблицы с зависимыми объектами.
Представление с зависимыми объектами, такими как триггеры SSMA создает представления с зависимыми объектами.
Материализованные представления SSMA создает индексированные представления на SQL Server с некоторыми исключениями. Преобразование завершится ошибкой, если материализованное представление содержит одну или несколько следующих конструкций:

Определяемая пользователем функция

Недетерминированное поле / функция / выражение в предложениях SELECT, WHERE или GROUP BY

Использование столбца Float в предложениях SELECT*, WHERE или GROUP BY (особый случай предыдущей проблемы)

Пользовательский тип данных (включая вложенные таблицы)

COUNT(distinct <поле>)

FETCH

Инструкции объединения OUTER (LEFT, RIGHT или FULL)

Вложенный запрос, другое представление

OVER, RANK, LEAD, LOG

MIN, MAX

UNION, MINUS, INTERSECT

HAVING
Триггер SSMA создает триггеры на основе следующих правил:

Триггеры BEFORE преобразуются в триггеры INSTEAD OF.

Триггеры AFTER преобразуются в триггеры AFTER.

Триггеры INSTEAD OF преобразуются в триггеры INSTEAD OF. Несколько триггеров INSTEAD OF, определенных в одной операции, объединяются в один.

Триггеры уровня строки имитируются с помощью курсоров.

Составные триггеры преобразуются в триггеры INSTEAD OF. Несколько составных триггеров объединяются в один триггер

Каскадные триггеры преобразуются в несколько отдельных триггеров.
Синонимы Синонимы создаются для следующих типов объектов:

Таблицы и таблицы объектов

Представления и представления объектов

Хранимые процедуры

Функции

Синонимы для следующих объектов разрешаются и заменяются прямыми ссылками на объекты:

Последовательности

Пакеты

Объекты схемы классов Java

Пользовательские объектные типы

Синонимы для другого синонима нельзя перенести и будут помечены как ошибки.

Синонимы не создаются для материализованных представлений.
Определяемые пользователем типы SSMA не поддерживает преобразование определяемых пользователем типов. Определяемые пользователем типы, включая его использование в программах PL/SQL, отмечены специальными ошибками преобразования в соответствии со следующими правилами:

Столбец таблицы определяемого пользователем типа преобразуется в VARCHAR(8000).

Аргумент определяемого пользователем типа в хранимую процедуру или функцию преобразуется в VARCHAR(8000).

Переменная определяемого пользователем типа в блоке PL/SQL преобразуется в VARCHAR(8000).

Таблица объектов преобразуется в стандартную таблицу.

Представление объектов преобразуется в стандартное представление.

Преобразование объектов базы данных Oracle

Чтобы преобразовать объекты базы данных Oracle, сначала выберите объекты, которые требуется преобразовать, а затем выполните преобразование SSMA. Чтобы просмотреть выходные сообщения во время преобразования, в меню "Вид " выберите "Вывод".

Преобразование объектов Oracle в синтаксис SQL Server

  1. В обозревателе метаданных Oracle разверните сервер Oracle и разверните схемы.

  2. Выберите объекты для преобразования:

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

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

    • Чтобы преобразовать или опустить категорию объектов, разверните схему, а затем установите или снимите флажок рядом с категорией.

    • Чтобы преобразовать или опустить отдельные объекты, разверните папку категории, а затем установите или снимите флажок рядом с объектом.

  3. Чтобы преобразовать все выбранные объекты, щелкните правой кнопкой мыши схемы и выберите "Преобразовать схему".

    Вы также можете преобразовать отдельные объекты или категории объектов, щелкнув правой кнопкой мыши объект или ее родительскую папку, а затем выбрав "Преобразовать схему".

Просмотр проблем преобразования

Некоторые объекты Oracle могут не быть преобразованы. Вы можете определить показатели успешного преобразования, просмотрев сводный отчет о преобразовании.

Просмотр сводного отчета

  1. В обозревателе метаданных Oracle выберите схемы.

  2. В правой области выберите вкладку "Отчет ".

    В этом отчете показан сводный отчет об оценке для всех объектов базы данных, которые были оценены или преобразованы. Вы также можете просмотреть сводный отчет для отдельных объектов:

    • Чтобы просмотреть отчет для отдельной схемы, выберите схему в обозревателе метаданных Oracle.

    • Чтобы просмотреть отчет для отдельного объекта, выберите объект в обозревателе метаданных Oracle. Объекты с проблемами преобразования имеют красный значок ошибки.

Для объектов, которые не удалось преобразовать, можно просмотреть синтаксис, который привел к сбою преобразования.

Просмотр отдельных проблем преобразования

  1. В обозревателе метаданных Oracle разверните схемы.

  2. Разверните схему, отображающую красный значок ошибки.

  3. В схеме разверните папку с красным значком ошибки.

  4. Выберите объект, имеющий красный значок ошибки.

  5. В правой области щелкните вкладку "Отчет ".

  6. В верхней части вкладки "Отчет " находится раскрывающийся список. Если в списке отображается статистика, измените выбор на источник.

    SSMA отобразит исходный код и несколько кнопок сразу над кодом.

  7. Нажмите кнопку "Следующая проблема ". Это красный значок ошибки со стрелкой справа.

    SSMA выделяет первый проблемный исходный код, который он находит в текущем объекте.

Для каждого элемента, который не удалось преобразовать, необходимо определить, что нужно сделать с этим объектом:

  • Исходный код можно изменить на вкладке SQL .

  • Объект в базе данных Oracle можно изменить, чтобы удалить или пересмотреть проблемный код. Чтобы загрузить обновленный код в SSMA, необходимо обновить метаданные. Дополнительные сведения см. в статье "Подключение к базе данных Oracle (OracleToSQL)".

  • Объект можно исключить из миграции. В обозревателе метаданных SQL Server и обозревателе метаданных Oracle снимите флажок рядом с элементом перед загрузкой объектов в SQL Server и переносом данных из Oracle.

Следующий шаг

Следующим шагом в процессе миграции является загрузка преобразованных объектов в SQL Server.

См. также

Миграция баз данных Oracle в SQL Server (OracleToSQL)