Partage via


Conversion de schémas Oracle (OracleToSQL)

Une fois que vous avez connecté à Oracle, connecté à SQL Server et défini des options de mappage de projet et de données, vous pouvez convertir des objets de base de données Oracle en objets de base de données SQL Server.

Processus de conversion

La conversion d’objets de base de données prend les définitions d’objets d’Oracle, les convertit en objets SQL Server similaires, puis charge ces informations dans les métadonnées SSMA. Les informations ne sont pas chargées dans l’instance 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 Oracle ou votre processus de conversion pour obtenir les résultats de conversion souhaités.

Définition des 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. À l’aide de cette boîte de dialogue, vous pouvez définir la façon dont SSMA convertit les fonctions et les variables globales. Pour plus d’informations, consultez Paramètres du projet (conversion) (OracleToSQL).

Résultats de conversion

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

Objets Oracle Objets SQL Server résultants
Fonctions Si la fonction peut être convertie directement en Transact-SQL, SSMA crée une fonction.

Dans certains cas, la fonction doit être convertie en procédure stockée. Dans ce cas, SSMA crée une procédure stockée et une fonction qui appelle la procédure stockée.
Procédures Si la procédure peut être convertie directement en Transact-SQL, SSMA crée une procédure stockée.

Dans certains cas, une procédure stockée doit être appelée dans une transaction autonome. Dans ce cas, SSMA crée deux procédures stockées : une qui implémente la procédure et une autre qui est utilisée pour appeler la procédure stockée d’implémentation.
. SSMA crée un ensemble de procédures stockées et de fonctions unifiées par des noms d’objets similaires.
Séquences SSMA crée des objets séquences (SQL Server 2012 ou SQL Server 2014) ou émule des séquences Oracle.
Tables avec des objets dépendants, tels que des index et des déclencheurs SSMA crée des tables avec des objets dépendants.
Affichage avec des objets dépendants, tels que des déclencheurs SSMA crée des affichages avec des objets dépendants.
Vues matérialisées SSMA crée des vues indexées sur SQL Server avec certaines exceptions. La conversion échoue si la vue matérialisée comprend au moins une des constructions suivantes :

Fonction définie par l'utilisateur

Champ non déterministe / fonction / expression dans les clauses SELECT, WHERE ou GROUP BY

Utilisation de la colonne Float dans les clauses SELECT*, WHERE ou GROUP BY (cas spécial du problème précédent)

Type de données personnalisé (notamment les tableaux imbriqués)

COUNT (<champ> distinct)

FETCH

Jointures OUTER (LEFT, RIGHT ou FULL)

Sous-requête, autre affichage

OVER, RANK, LEAD, LOG

MIN, MAX

UNION, MINUS, INTERSECT

HAVING
Déclencheur SSMA crée des déclencheurs en fonction des règles suivantes :

Les déclencheurs BEFORE sont convertis en déclencheurs INSTEAD OF.

Les déclencheurs AFTER sont convertis en déclencheurs AFTER.

Les déclencheurs INSTEAD OF sont convertis en déclencheurs INSTEAD OF. Plusieurs déclencheurs INSTEAD OF définis sur la même opération sont combinés en un seul déclencheur.

Les déclencheurs de niveau ligne sont émulés à l’aide de curseurs.

Les déclencheurs composés sont convertis en déclencheurs INSTEAD OF. Plusieurs déclencheurs composés sont combinés en déclencheur unique

Les déclencheurs en cascade sont convertis en plusieurs déclencheurs individuels.
Synonymes Les synonymes sont créés pour les types d’objets suivants :

Tables et tables d’objets

Vues et vues d’objets

Procédures stockées

Fonctions

Les synonymes pour les objets suivants sont résolus et remplacés par des références d’objet direct :

Séquences

.

Objets de schéma de classe Java

Types d'objets définis par l'utilisateur

Les synonymes d’un autre synonyme ne peuvent pas être migrés et sont marqués comme des erreurs.

Les synonymes ne sont pas créés pour les vues matérialisées.
Types définis par l’utilisateur SSMA ne prend pas en charge la conversion des types définis par l’utilisateur. Les types définis par l’utilisateur, y compris son utilisation dans les programmes PL/SQL, sont marqués avec des erreurs de conversion spéciales guidées par les règles suivantes :

La colonne de table d’un type défini par l’utilisateur est convertie en VARCHAR(8000).

L’argument du type défini par l’utilisateur en une procédure stockée ou une fonction est converti en VARCHAR(8000).

La variable du type défini par l’utilisateur dans le bloc PL/SQL est convertie en VARCHAR(8000).

La table des objets est convertie en table standard.

L’affichage des objets est converti en vue standard.

Conversion d’objets de base de données Oracle

Pour convertir des objets de base de données Oracle, 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, dans le menu Affichage , sélectionnez Sortie.

Pour convertir des objets Oracle en syntaxe SQL Server

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

  2. Sélectionnez des objets à convertir :

    • Pour convertir tous les schémas, cochez la case en regard des schémas.

    • 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.

Affichage des problèmes de conversion

Certains objets Oracle 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.

Pour afficher un rapport récapitulative

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

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

    Ce rapport affiche 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écapitulative pour des objets individuels :

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

    • Pour afficher le rapport d’un objet individuel, sélectionnez l’objet dans l’Explorateur de métadonnées Oracle. 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.

Pour afficher les problèmes de conversion individuels

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

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

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

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

  5. Dans le volet droit, cliquez sur 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. Cliquez sur le bouton Problème suivant. Il s’agit d’une 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 Oracle 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 Connexion à Oracle Database (OracleToSQL).

  • Vous pouvez exclure l’objet de la migration. Dans l’Explorateur de métadonnées SQL Server et l’Explorateur de métadonnées Oracle, 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 d’Oracle.

Étape suivante

L’étape suivante du processus de migration consiste à charger les objets convertis en SQL Server.

Voir aussi

Migration de bases de données Oracle vers SQL Server (OracleToSQL)