Преобразование схем Db2 (Db2ToSQL)
После подключения к Db2 и SQL Server и задания параметров сопоставления проектов и данных можно преобразовать объекты базы данных Db2 в объекты базы данных SQL Server.
Процесс конвертации
Преобразование объектов базы данных берет определения объектов из Db2, преобразует их в аналогичные объекты SQL Server, а затем загружает эту информацию в метаданные SQL Server Migration Assistant (SSMA). Сведения не загружаются в экземпляр SQL Server. Затем можно просмотреть объекты и их свойства в обозревателе метаданных SQL Server.
Во время преобразования SSMA выводит сообщения о результатах в области "Вывод" и сообщения об ошибках в области "Список ошибок". Используйте выходные данные и сведения об ошибках, чтобы определить, нужно ли изменять базы данных Db2 или процесс преобразования, чтобы получить нужные результаты преобразования.
Настройка параметров преобразования
Перед преобразованием объектов просмотрите параметры преобразования проекта в диалоговом окне "Параметры проекта". Используйте это диалоговое окно, чтобы задать способ преобразования функций и глобальных переменных SSMA. Дополнительные сведения см. в разделе "Параметры проекта" (преобразование).
Результаты преобразования
В следующей таблице показано, какие объекты Db2 преобразуются, и результирующий объект SQL Server:
Объекты Db2 | Результирующие объекты SQL Server |
---|---|
Типы данных | SSMA сопоставляет все типы, кроме следующих типов:CLOB : некоторые собственные функции, которые работают с этим типом, не поддерживаются (например, CLOB_EMPTY() )BLOB : некоторые собственные функции для работы с этим типом не поддерживаются (например, BLOB_EMPTY() )DBLOB : некоторые собственные функции для работы с этим типом не поддерживаются (например, DBLOB_EMPTY() ) |
Определяемые пользователем типы | SSMA сопоставляет следующие пользовательские объекты: - Отдельный тип — Структурированный тип — Типы данных SQL PL Примечание. Не поддерживаются слабые типы курсоров. |
Специальные регистры | SSMA сопоставляет только следующие регистры:CURRENT TIMESTAMP CURRENT DATE CURRENT TIME CURRENT TIMEZONE CURRENT USER SESSION_USER и USER .SYSTEM_USER CURRENT CLIENT_APPLNAME CURRENT CLIENT_WRKSTNNAME CURRENT LOCK TIMEOUT CURRENT SCHEMA CURRENT SERVER CURRENT ISOLATION Другие специальные регистры не сопоставляются с семантикой SQL Server. |
CREATE TABLE |
SSMA сопоставляет CREATE TABLE со следующими исключениями:Многомерные таблицы кластеризации (MDC) Таблицы, кластеризованные по диапазонам (RCT) Секционированные таблицы Отдельно стоящая таблица Предложение DATA CAPTURE IMPLICITLY HIDDEN выборVOLATILE опция |
CREATE VIEW |
SSMA сопоставляет CREATE VIEW с WITH LOCAL CHECK OPTION , но другие параметры не сопоставляются с семантикой SQL Server. |
CREATE INDEX |
SSMA сопоставляет CREATE INDEX со следующими исключениями:XML-индекс BUSINESS_TIME WITHOUT OVERLAPS опцияПредложение PARTITIONED SPECIFICATION ONLY опцияEXTEND USING выборMINPCTUSED выборPAGE SPLIT выбор |
Триггеры | SSMA сопоставляет следующую семантику триггера:AFTER
/
FOR EACH ROW ТриггерыAFTER
/
FOR EACH STATEMENT ТриггерыBEFORE
/
FOR EACH ROW и INSTEAD OF / FOR EACH ROW триггеры |
Последовательности | Сопоставлены. |
заявление SELECT |
SSMA сопоставляет SELECT со следующими исключениями:Предложение data-change-table-reference — частично сопоставлено, но FINAL таблицы не поддерживаютсяПредложение table-reference — частично сопоставленное, но только ссылка-на-таблицу, внешняя ссылка-на-таблицу, анализ таблицы-выражение, коллекция-производная таблица, xmltable-expression не сопоставляются с семантикой SQL Server. period-specification предложение — не сопоставлено.Конструкция continue-handler — не сопоставлена. Предложение о связи по типу — не сопоставлено. Предложение параллельного разрешения доступа — не сопоставлено. |
заявление VALUES |
Сопоставлены. |
INSERT заявление |
Сопоставлены. |
заявление UPDATE |
SSMA сопоставляет UPDATE со следующими исключениями:Предложение table-reference — ссылка только на таблицу не сопоставляется с семантикой SQL Server Период клауза — не сопоставлено. |
MERGE заявление |
SSMA соответствует MERGE за исключением:Одно или несколько вхождений каждого условия — соответствует семантике SQL Server для каждого условия с ограниченным числом вхождений. SIGNAL клауза — не соответствует семантике SQL ServerСмешанные UPDATE и DELETE предложения — не сопоставляется с семантикой SQL ServerПредложение period-clause — не сопоставляется с семантикой SQL Server |
заявление DELETE |
SSMA сопоставляет DELETE со следующими исключениями.Предложение table-reference — ссылка только на таблицу не сопоставляется с семантикой SQL Server Клауза Period не сопоставляется с семантикой SQL Server. |
Уровень изоляции и тип блокировки | Сопоставлено. |
Процедуры (SQL) | Сопоставлены. |
Процедуры (внешние) | Требовать обновления вручную. |
Процедуры (источник) | Не сопоставляйте с семантикой SQL Server. |
Оператор присваивания | Сопоставлены. |
CALL инструкция для процедуры |
Сопоставлены. |
заявление CASE |
Сопоставлены. |
FOR утверждение |
Сопоставлены. |
GOTO заявление |
Сопоставлены. |
заявление IF |
Сопоставлены. |
ITERATE заявление |
Сопоставлены. |
LEAVE заявление |
Сопоставлены. |
заявление LOOP |
Сопоставлены. |
заявление REPEAT |
Сопоставлены. |
RESIGNAL заявление |
Условия не поддерживаются. Сообщения могут быть необязательными. |
заявление RETURN |
Сопоставлены. |
SIGNAL заявление |
Условия не поддерживаются. Сообщения могут быть необязательными. |
WHILE заявление |
Сопоставлены. |
заявление GET DIAGNOSTICS |
SSMA сопоставляет GET DIAGNOSTICS со следующими исключениями:ROW_COUNT - Сопоставлены.Db2_RETURN_STATUS - Сопоставлены.MESSAGE_TEXT - Сопоставлены.Db2_SQL_NESTING_LEVEL — не сопоставляется с семантикой SQL ServerDb2_TOKEN_STRING — не сопоставляется с семантикой SQL Server |
Курсоры | SSMA сопоставляет курсоры со следующими исключениями:ALLOCATE CURSOR выражение — не соответствует семантике SQL ServerASSOCIATE LOCATORS оператор — не соответствует семантике SQL ServerDECLARE CURSOR оператор. Условие возвратимости не сопоставляется с семантикой SQL ServerFETCH высказывание — частичное сопоставление. Поддерживаются только переменные в качестве целевого объекта.
SQLDA DESCRIPTOR не сопоставляется с семантикой SQL Server |
Переменные | Сопоставлены. |
Исключения, обработчики и условия | SSMA сопоставляет обработку исключений со следующими исключениями:EXIT обработчики — сопоставлены.UNDO обработчики — сопоставлены.CONTINUE обработчики — не сопоставлены.Условия — это не сопоставляется с семантикой SQL Server. |
Динамический SQL | Не сопоставлено. |
Псевдонимы | Сопоставлены. |
Прозвища | Частичное сопоставление. Обработка вручную требуется для базового объекта |
Синонимы | Сопоставлены. |
Стандартные функции в Db2 | SSMA сопоставляет стандартные функции Db2, если эквивалентная функция доступна в SQL Server: |
Авторизация | Не сопоставлено. |
Предикаты | Сопоставлены. |
заявление SELECT INTO |
Не сопоставлено. |
утверждение VALUES INTO |
Не сопоставлено. |
Управление транзакцией | Не сопоставлено. |
Преобразование объектов базы данных Db2
Чтобы преобразовать объекты базы данных Db2, сначала выберите объекты, которые требуется преобразовать, а затем выполните преобразование SSMA. Чтобы просмотреть выходные сообщения во время преобразования, перейдите к разделу "Просмотр>выходных данных".
Преобразование объектов Db2 в синтаксис SQL Server
В обозревателе метаданных Db2 разверните сервер Db2, а затем разверните схемы.
Выберите объекты для преобразования:
Чтобы преобразовать все схемы, установите флажок рядом с схемами.
Чтобы преобразовать или опустить базу данных, установите флажок рядом с именем схемы.
Чтобы преобразовать или опустить категорию объектов, разверните схему, а затем установите или снимите флажок рядом с категорией.
Чтобы преобразовать или опустить отдельные объекты, разверните папку категории, а затем установите или снимите флажок рядом с объектом.
Чтобы преобразовать все выбранные объекты, щелкните правой кнопкой мыши схемы и выберите "Преобразовать схему".
Вы также можете преобразовать отдельные объекты или категории объектов, щелкнув правой кнопкой мыши объект или ее родительскую папку, а затем выбрав "Преобразовать схему".
Просмотр проблем преобразования
Некоторые объекты Db2 могут не быть преобразованы. Вы можете определить показатели успешного преобразования, просмотрев сводный отчет о преобразовании.
Просмотр сводного отчета
В обозревателе метаданных Db2 выберите Схемы.
В правой области выберите вкладку "Отчет ".
В этом отчете показан сводный отчет об оценке для всех объектов базы данных, которые были оценены или преобразованы. Вы также можете просмотреть сводный отчет для отдельных объектов:
Чтобы просмотреть отчет для отдельной схемы, выберите схему в обозревателе метаданных Db2.
Чтобы просмотреть отчет для отдельного объекта, выберите объект в обозревателе метаданных Db2. Объекты с проблемами преобразования имеют красный значок ошибки.
Для объектов, которые не удалось преобразовать, можно просмотреть синтаксис, который привел к сбою преобразования.
Просмотр отдельных проблем преобразования
В обозревателе метаданных Db2 разверните Схемы.
Разверните схему, отображающую красный значок ошибки.
В схеме разверните папку с красным значком ошибки.
Выберите объект, имеющий красный значок ошибки.
В правой области выберите вкладку "Отчет ".
В верхней части вкладки "Отчет " находится раскрывающийся список. Если в списке отображается статистика, измените выбор на источник.
SSMA отображает исходный код и несколько кнопок сразу над кодом.
Нажмите кнопку "Следующая проблема" (красный значок ошибки со стрелкой вправо).
SSMA выделяет первый проблемный исходный код, который он находит в текущем объекте.
Для каждого элемента, который не удалось преобразовать, необходимо определить, что нужно сделать с этим объектом:
Исходный код можно изменить на вкладке SQL .
Объект в базе данных Db2 можно изменить, чтобы удалить или пересмотреть проблемный код. Чтобы загрузить обновленный код в SSMA, необходимо обновить метаданные. Дополнительные сведения см. в разделе "Подключение к базе данных Db2".
Вы можете исключить объект из миграции. В обозревателе метаданных SQL Server и обозревателе метаданных Db2 снимите флажок рядом с элементом перед загрузкой объектов в SQL Server и переносом данных из Db2.