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
Dans l’Explorateur de métadonnées Oracle, développez le serveur Oracle, puis développez Schémas.
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.
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
Dans l’Explorateur de métadonnées Oracle, sélectionnez Schémas.
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
Dans l’Explorateur de métadonnées Oracle, développez Schémas.
Développez le schéma qui affiche une icône d’erreur rouge.
Sous le schéma, développez un dossier contenant une icône d’erreur rouge.
Sélectionnez l’objet qui a une icône d’erreur rouge.
Dans le volet droit, cliquez sur l’onglet Rapport .
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.
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)