Преобразование схем Db2 (Db2ToSQL)

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

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

Преобразование объектов базы данных принимает определения объектов из Db2, преобразует их в аналогичные объекты SQL Server, а затем загружает эти сведения в метаданные Помощник по миграции SQL Server (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 Карты CREATE VIEW SSMA с другими параметрами не сопоставляются с 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 — частично сопоставленное, но только таблица-reference, внешние таблицы-reference, analysis-table-expression, collection-производные таблицы, xmltable-expression не сопоставляются с семантикой SQL Server

period-specification предложение — не сопоставлено.

Предложение continue-handler — не сопоставлено.

Предложение typed-correlation — не сопоставлено.

Предложение параллельного разрешения доступа — не сопоставлено.
инструкция VALUES Сопоставлены.
инструкция INSERT Сопоставлены.
инструкция UPDATE SSMA сопоставляется UPDATE со следующими исключениями:

Предложение table-reference — ссылка только на таблицу не сопоставляется с семантикой SQL Server

Предложение Period — не сопоставлено.
инструкция 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 Server

Db2_TOKEN_STRING — не сопоставляется с семантикой SQL Server
Курсоры SSMA сопоставляет курсоры со следующими исключениями:

ALLOCATE CURSOR оператор — не сопоставляется с семантикой SQL Server

ASSOCIATE LOCATORS оператор — не сопоставляется с семантикой SQL Server

DECLARE CURSOR оператор . Предложение returnability не сопоставляется с семантикой SQL Server

FETCH оператор — частичное сопоставление. Поддерживаются только переменные в качестве целевого объекта. SQLDA DESCRIPTOR не сопоставляется с семантикой SQL Server
Переменные Сопоставлены.
Исключения, обработчики и условия SSMA сопоставляет обработку исключений со следующими исключениями:

EXIT обработчики — сопоставлены.

UNDO обработчики — сопоставлены.

CONTINUE обработчики — не сопоставлены.

Условия. Он не сопоставляется с семантикой SQL Server.
Динамический SQL Не сопоставлено.
Aliases Сопоставлены.
Прозвища Частичное сопоставление. Обработка вручную требуется для базового объекта
Синонимы Сопоставлены.
Стандартные функции в Db2 SSMA сопоставляет стандартные функции Db2, если эквивалентная функция доступна в SQL Server:
Авторизация Не сопоставлено.
Предикаты Сопоставлены.
инструкция SELECT INTO Не сопоставлено.
инструкция VALUES INTO Не сопоставлено.
Управление транзакцией Не сопоставлено.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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