Convertir des schémas Db2 (Db2ToSQL)

Après vous être connecté à Db2 et SQL Server, et définir des options de mappage de projet et de données, vous pouvez convertir des objets de base de données Db2 en objets de base de données SQL Server.

Processus de conversion

La conversion des objets de base de données prend les définitions d’objets de Db2, les convertit en objets SQL Server équivalents, puis charge ces informations dans les métadonnées de Assistant Migration SQL Server (SSMA). Les informations ne sont pas chargées dans l’instance de SQL Server. Vous pouvez ensuite afficher les objets et leurs propriétés à l’aide de l’Explorateur de métadonnées SQL Server.

Pendant la conversion, SSMA imprime les messages de sortie dans le volet de Sortie et les messages d’erreur dans le volet Liste d’erreurs. Utilisez les informations de sortie et d’erreur pour déterminer si vous devez modifier vos bases de données Db2 ou votre processus de conversion pour obtenir les résultats de conversion souhaités.

Définir les options de conversion

Avant de convertir des objets, passez en revue les options de conversion du projet dans la boîte de dialogue Paramètres du projet. Utilisez cette boîte de dialogue pour définir la façon dont SSMA convertit les fonctions et les variables globales. Pour plus d’informations, consultez Paramètres du projet (conversion).

Résultats de conversion

Le tableau suivant montre quels objets Db2 sont convertis et les objets SQL Server résultants :

Objets Db2 Objets SQL Server générés
Types de données SSMA mappe chaque type, à l’exception des types suivants :

CLOB: Certaines fonctions natives qui fonctionnent avec ce type ne sont pas prises en charge (par exemple, CLOB_EMPTY())

BLOB: Certaines fonctions natives pour l’utilisation de ce type ne sont pas prises en charge (par exemple, BLOB_EMPTY())

DBLOB: Certaines fonctions natives pour l’utilisation de ce type ne sont pas prises en charge (par exemple, DBLOB_EMPTY())
Types définis par l'utilisateur SSMA mappe les objets définis par l’utilisateur suivants :

- Type différent
- Type structuré
- Types de données PL SQL

Remarque : Les types de curseurs faibles ne sont pas pris en charge.
Registres spéciaux SSMA mappe uniquement les registres suivants :

CURRENT TIMESTAMP
CURRENT DATE
CURRENT TIME
CURRENT TIMEZONE
CURRENT USER
SESSION_USER et USER
SYSTEM_USER
CURRENT CLIENT_APPLNAME
CURRENT CLIENT_WRKSTNNAME
CURRENT LOCK TIMEOUT
CURRENT SCHEMA
CURRENT SERVER
CURRENT ISOLATION

Les autres registres spéciaux ne sont pas mappés à la sémantique SQL Server.
CREATE TABLE SSMA mappe CREATE TABLE avec les exceptions suivantes :

Tables de regroupement multidimensionnel (MDC)
Tables clusterisées par plage (RCT)
tables partitionnées
Tableau détaché
Clause DATA CAPTURE
option IMPLICITLY HIDDEN
option VOLATILE
CREATE VIEW SSMA mappe CREATE VIEW avec WITH LOCAL CHECK OPTION, mais les autres options ne sont pas mappées à la sémantique de SQL Server
CREATE INDEX SSMA mappe CREATE INDEX avec les exceptions suivantes :

Index XML
option BUSINESS_TIME WITHOUT OVERLAPS
Clause PARTITIONED
option SPECIFICATION ONLY
option EXTEND USING
option MINPCTUSED
option PAGE SPLIT
Déclencheurs SSMA mappe la sémantique de déclencheur suivante :

AFTER / FOR EACH ROW déclencheurs

AFTER / FOR EACH STATEMENT Déclencheurs

BEFORE / FOR EACH ROW et INSTEAD OF / FOR EACH ROW déclencheurs
Séquences Mappé.
Instruction SELECT SSMA mappe SELECT avec les exceptions suivantes :

Clause data-change-table-reference : partiellement mappée, mais les tables FINAL ne sont pas prises en charge

Clause table-reference : partiellement mappée, mais only-table-reference, outer-table-reference, analyze-table-expression, collection-derived-table et xmltable-expression ne sont pas mappés à la sémantique SQL Server

Clause period-specification : non mappée.

Clause Continue-handler : non mappée.

Clause de corrélation typée : non mappée.

Clause Concurrent-access-resolution : non mappée.
Instruction VALUES Mappé.
Instruction INSERT Mappé.
Instruction UPDATE SSMA mappe UPDATE avec les exceptions suivantes :

Clause de référence de table - only-table-reference n’est pas associée à la sémantique de SQL Server

Clause Period : non mappée.
Instruction MERGE SSMA mappe MERGE avec les exceptions suivantes :

Occurrence unique ou multiple de chaque clause - Selon la sémantique de SQL Server pour un nombre limité d’occurrences de chaque clause

SIGNAL clause : ne correspond pas à la sémantique de SQL Server

Clauses mixtes UPDATE et DELETE - ne correspondent pas à la sémantique de SQL Server

Period-clause - ne correspond pas à la sémantique de SQL Server
Instruction DELETE SSMA mappe DELETE avec les exceptions suivantes :

Clause de référence de table - only-table-reference n’est pas associée aux règles sémantiques de SQL Server

La clause PERIOD ne correspond pas à la sémantique de SQL Server
Niveau d’isolation et type de verrou Mappé.
Procédures (SQL) Mappé.
Procédures (externes) Exiger une mise à jour manuelle.
Procédures (sourcées) Ne sont pas mappées à la sémantique SQL Server.
instruction d’affectation Mappé.
Instruction CALL pour une procédure Mappé.
Instruction CASE Mappé.
Instruction FOR Mappé.
Instruction GOTO Mappé.
Instruction IF Mappé.
Instruction ITERATE Mappé.
Instruction LEAVE Mappé.
Instruction LOOP Mappé.
Instruction REPEAT Mappé.
Instruction RESIGNAL Les conditions ne sont pas prises en charge. Les messages peuvent être facultatifs.
Instruction RETURN Mappé.
Instruction SIGNAL Les conditions ne sont pas prises en charge. Les messages peuvent être facultatifs.
Instruction WHILE Mappé.
Instruction GET DIAGNOSTICS SSMA mappe GET DIAGNOSTICS avec les exceptions suivantes :

ROW_COUNT - Cartographié.

Db2_RETURN_STATUS - Cartographié.

MESSAGE_TEXT - Cartographié.

Db2_SQL_NESTING_LEVEL - ne mappe pas à la sémantique SQL Server

Db2_TOKEN_STRING - ne mappe pas à la sémantique SQL Server
Curseurs SSMA mappe les curseurs avec les exceptions suivantes :

ALLOCATE CURSOR instruction - ne correspond pas à la sémantique de SQL Server

ASSOCIATE LOCATORS instruction - ne correspond pas à la sémantique de SQL Server

Instruction DECLARE CURSOR : la clause de retournabilité n’est pas mappée à la sémantique SQL Server

Instruction FETCH : mappage partiel. Les variables en tant que cible sont prises en charge uniquement. SQLDA DESCRIPTOR n’est pas mappé à la sémantique SQL Server
Variables Mappé.
Exceptions, gestionnaires et conditions SSMA mappe la gestion des exceptions avec les exceptions suivantes :

Gestionnaires EXIT : mappés.

UNDO gestionnaires - Mappés.

Gestionnaires CONTINUE : non mappés.

Conditions : elle ne correspond pas à la sémantique SQL Server.
SQL dynamique Non mappé.
Alias Mappé.
Surnoms Mappage partiel. Le traitement manuel est requis pour l’objet sous-jacent
Synonymes Mappé.
Fonctions standard dans Db2 SSMA mappe les fonctions standard Db2 lorsqu’une fonction équivalente est disponible dans SQL Server :
Autorisation Non mappé.
Prédicats Mappé.
Instruction SELECT INTO Non mappé.
Instruction VALUES INTO Non mappé.
Contrôle des transactions Non mappé.

Convertir des objets de base de données Db2

Pour convertir des objets de base de données Db2, vous devez d’abord sélectionner les objets que vous souhaitez convertir, puis effectuer la conversion par SSMA. Pour afficher les messages de sortie pendant la conversion, accédez à Afficher>la sortie.

Pour convertir des objets Db2 en syntaxe SQL Server

  1. Dans l’Explorateur de métadonnées Db2, développez le serveur Db2, puis développez Schémas.

  2. Sélectionnez des objets à convertir :

    • Pour convertir tous les schémas, cochez la case à côté de Schemas.

    • Pour convertir ou omettre une base de données, cochez la case en regard du nom du schéma.

    • Pour convertir ou omettre une catégorie d’objets, développez un schéma, puis activez ou désactivez la case à cocher en regard de la catégorie.

    • Pour convertir ou omettre des objets individuels, développez le dossier de catégorie, puis activez ou désactivez la case à cocher en regard de l’objet.

  3. Pour convertir tous les objets sélectionnés, cliquez avec le bouton droit sur Schémas et sélectionnez Convertir le schéma.

    Vous pouvez également convertir des objets individuels ou des catégories d’objets en cliquant avec le bouton droit sur l’objet ou son dossier parent, puis en sélectionnant Convertir le schéma.

Afficher les problèmes de conversion

Certains objets Db2 peuvent ne pas être convertis. Vous pouvez déterminer les taux de réussite de la conversion en consultant le rapport de conversion récapitulative.

Afficher un rapport récapitulatif

  1. Dans l’Explorateur de métadonnées Db2, sélectionnez Schémas.

  2. Dans le volet droit, sélectionnez l’onglet Rapport .

    Ce rapport montre le rapport d’évaluation récapitulative pour tous les objets de base de données qui ont été évalués ou convertis. Vous pouvez également afficher un rapport récapitulatif pour chaque objet :

    • Pour afficher le rapport d’un schéma individuel, sélectionnez le schéma dans l’Explorateur de métadonnées Db2.

    • Pour afficher le rapport d’un objet individuel, sélectionnez l’objet dans l’Explorateur de métadonnées Db2. Les objets qui ont des problèmes de conversion ont une icône d’erreur rouge.

Pour les objets qui ont échoué la conversion, vous pouvez afficher la syntaxe qui a entraîné l’échec de la conversion.

Afficher les problèmes de conversion individuels

  1. Dans l’Explorateur de métadonnées Db2, développez Schémas.

  2. Développez le schéma qui affiche une icône d’erreur rouge.

  3. Dans le schéma, développez un dossier avec une icône d’erreur rouge.

  4. Sélectionnez l’objet qui a une icône d’erreur rouge.

  5. Dans le volet droit, sélectionnez l’onglet Rapport .

  6. En haut de l’onglet Rapport , il s’agit d’une liste déroulante. Si la liste affiche les statistiques, remplacez la sélection par Source.

    SSMA affiche le code source et plusieurs boutons juste au-dessus du code.

  7. Sélectionnez le bouton Problème suivant (icône d’erreur rouge avec une flèche pointant vers la droite).

    SSMA met en évidence le premier code source problématique qu’il trouve dans l’objet actuel.

Pour chaque élément qui n’a pas pu être converti, vous devez déterminer ce que vous souhaitez faire avec cet objet :

  • Vous pouvez modifier le code source des procédures sous l’onglet SQL .

  • Vous pouvez modifier l’objet dans la base de données Db2 pour supprimer ou réviser le code problématique. Pour charger le code mis à jour dans SSMA, vous devez mettre à jour les métadonnées. Pour plus d’informations, consultez Se connecter à la base de données Db2.

  • Vous pouvez exclure l’objet de la migration. Dans l’Explorateur de métadonnées SQL Server et l’Explorateur de métadonnées Db2, décochez la case en regard de l’élément avant de charger les objets dans SQL Server et de migrer des données à partir de Db2.