Partager via


Convertir des schémas Oracle (OracleToSQL)

Après vous être connecté à Oracle, connectez-vous à SQL Server et définissez 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 de l’Assistant Migration Microsoft SQL Server (SSMA) pour Oracle. 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 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é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 . À l’aide de cette boîte de dialogue, vous pouvez déterminer comment 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 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 : l'une qui implémente la procédure, et l'autre qui appelle cette procédure implémentée.
Paquets 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.
Vues avec des objets dépendants, tels que des déclencheurs SSMA crée des vues 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 une ou plusieurs des constructions suivantes :

Fonction définie par l’utilisateur.

Champ, fonction ou expression non déterministe dans SELECT, WHEREou GROUP BY clauses.

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

Type de données personnalisé (y compris les tables imbriquées).

COUNT(champ< distinct>).

FETCH.

OUTER rejoint (LEFT, RIGHT, ou FULL).

Sous-requête, une autre vue.

OVER, RANK, LEAD ou 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 INSTEAD OF déclencheurs définis sur la même opération sont combinés en un seul déclencheur.

Les déclencheurs au niveau des lignes 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 un seul déclencheur.

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.
Perspectives et vues d’objets.
Procédures stockées.
Fonctions.

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

Séquences
Paquets.
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 de 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 d’un type défini par l’utilisateur dans une procédure stockée ou une fonction est converti à VARCHAR(8000).

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

La table d’objets est convertie en table standard.

La vue d’objet est convertie en vue standard.

Convertir des objets de base de données Oracle

Pour convertir des objets de base de données Oracle, sélectionnez les objets que vous souhaitez convertir, puis effectuez la conversion par SSMA. Pour afficher les messages de sortie pendant la conversion, dans le menu Affichage , sélectionnez Sortie.

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

Afficher un rapport récapitulatif

  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 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 de synthèse 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.

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 avec une icône d’erreur rouge.

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

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

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

  6. Il existe une liste déroulante en haut de l’onglet Rapport . 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 , qui affiche 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, choisissez 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.
  • 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. Chargez ensuite les objets dans SQL Server et migrez les données à partir d’Oracle.