Преобразование схем 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
В обозревателе метаданных Oracle разверните сервер Oracle и разверните схемы.
Выберите объекты для преобразования:
Чтобы преобразовать все схемы, установите флажок рядом с схемами.
Чтобы преобразовать или опустить базу данных, установите флажок рядом с именем схемы.
Чтобы преобразовать или опустить категорию объектов, разверните схему, а затем установите или снимите флажок рядом с категорией.
Чтобы преобразовать или опустить отдельные объекты, разверните папку категории, а затем установите или снимите флажок рядом с объектом.
Чтобы преобразовать все выбранные объекты, щелкните правой кнопкой мыши схемы и выберите "Преобразовать схему".
Вы также можете преобразовать отдельные объекты или категории объектов, щелкнув правой кнопкой мыши объект или ее родительскую папку, а затем выбрав "Преобразовать схему".
Просмотр проблем преобразования
Некоторые объекты Oracle могут не быть преобразованы. Вы можете определить показатели успешного преобразования, просмотрев сводный отчет о преобразовании.
Просмотр сводного отчета
В обозревателе метаданных Oracle выберите схемы.
В правой области выберите вкладку "Отчет ".
В этом отчете показан сводный отчет об оценке для всех объектов базы данных, которые были оценены или преобразованы. Вы также можете просмотреть сводный отчет для отдельных объектов:
Чтобы просмотреть отчет для отдельной схемы, выберите схему в обозревателе метаданных Oracle.
Чтобы просмотреть отчет для отдельного объекта, выберите объект в обозревателе метаданных Oracle. Объекты с проблемами преобразования имеют красный значок ошибки.
Для объектов, которые не удалось преобразовать, можно просмотреть синтаксис, который привел к сбою преобразования.
Просмотр отдельных проблем преобразования
В обозревателе метаданных Oracle разверните схемы.
Разверните схему, отображающую красный значок ошибки.
В схеме разверните папку с красным значком ошибки.
Выберите объект, имеющий красный значок ошибки.
В правой области щелкните вкладку "Отчет ".
В верхней части вкладки "Отчет " находится раскрывающийся список. Если в списке отображается статистика, измените выбор на источник.
SSMA отобразит исходный код и несколько кнопок сразу над кодом.
Нажмите кнопку "Следующая проблема ". Это красный значок ошибки со стрелкой справа.
SSMA выделяет первый проблемный исходный код, который он находит в текущем объекте.
Для каждого элемента, который не удалось преобразовать, необходимо определить, что нужно сделать с этим объектом:
Исходный код можно изменить на вкладке SQL .
Объект в базе данных Oracle можно изменить, чтобы удалить или пересмотреть проблемный код. Чтобы загрузить обновленный код в SSMA, необходимо обновить метаданные. Дополнительные сведения см. в статье "Подключение к базе данных Oracle (OracleToSQL)".
Объект можно исключить из миграции. В обозревателе метаданных SQL Server и обозревателе метаданных Oracle снимите флажок рядом с элементом перед загрузкой объектов в SQL Server и переносом данных из Oracle.
Следующий шаг
Следующим шагом в процессе миграции является загрузка преобразованных объектов в SQL Server.