Поделиться через


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

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

Процесс конвертации

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

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

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

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

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

В следующей таблице показано, какие объекты 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 предложениях.

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

Настраиваемый тип данных (включая вложенные таблицы).

COUNT (отдельное <поле>).

FETCH.

OUTER присоединяется (LEFT, RIGHT, или FULL).

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

OVER, RANK, LEAD или LOG.

MIN, MAX.

UNION, , MINUSINTERSECT.

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".
  • Вы можете исключить объект из миграции. В обозревателе метаданных SQL Server и обозревателе метаданных Oracle снимите флажок рядом с элементом. Затем загрузите объекты в SQL Server и перенесите данные из Oracle.