Partager via


Paramètres du projet (Conversion) (OracleToSQL)

La page Conversion de la boîte de dialogue Paramètres du projet contient des paramètres qui personnalisent la façon dont SSMA convertit la syntaxe Oracle en syntaxe SQL Server.

Le volet Conversion est disponible dans les boîtes de dialogue Paramètres du projet et Paramètres du projet par défaut :

  • Pour spécifier les paramètres de tous les projets SSMA, dans le menu Outils, cliquez sur Paramètres de projet par défaut, sélectionnez le type de projet de migration pour lequel les paramètres doivent être affichés ou modifiés dans la liste déroulante Version cible de migration, puis cliquez sur Général en bas du volet gauche, puis sur Conversion.

  • Pour spécifier les paramètres du projet actuel, dans le menu Outils , cliquez sur Paramètres du projet, puis sur Général en bas du volet gauche, puis sur Conversion.

Fonctions intégrées et packages fournis

Terme Définition
Convertir la fonction COUNT en COUNT_BIG Si vos COUNT fonctions sont susceptibles de retourner des valeurs supérieures à 2 147 483 647, soit 231 à 1, vous devez convertir les fonctions COUNT_BIGen .

Si vous sélectionnez Oui, SSMA convertit toutes les utilisations en COUNT_BIGCOUNT .

Si vous sélectionnez Non, les fonctions restent en tant que COUNT. SQL Server retourne une erreur si la fonction retourne une valeur supérieure à 231-1.

Lorsque vous sélectionnez un mode de conversion dans la zone Mode , SSMA applique le paramètre suivant :

Mode par défaut/plein : Oui
Mode optimiste : Non
Convertir des appels de fonction SUBSTR en appels de fonction SUBSTRING SSMA peut convertir des appels de fonction Oracle SUBSTR en appels de fonction SQL Server substring , en fonction du nombre de paramètres. Si SSMA ne peut pas convertir un SUBSTR appel de fonction ou si le nombre de paramètres n’est pas pris en charge, SSMA convertit l’appel SUBSTR de fonction en appel de fonction SSMA personnalisé.

Si vous sélectionnez Oui, SSMA convertit SUBSTR les appels de fonction qui utilisent trois paramètres en SQL Server substring. D’autres SUBSTR fonctions seront converties pour appeler la fonction SSMA personnalisée.

Si vous sélectionnez Non, SSMA convertit l’appel SUBSTR de fonction en un appel de fonction SSMA personnalisé.

Lorsque vous sélectionnez un mode de conversion dans la zone Mode , SSMA applique le paramètre suivant :

Mode par défaut/optimiste : Oui
Mode plein : Non
Convertir des appels de fonction TO_CHAR(date, format) SSMA peut convertir Oracle TO_CHAR(date, format) en procédures à partir du ssma_oracle schéma.

Si vous sélectionnez Utiliser TO_CHAR_DATE fonction, SSMA convertit la fonction à l’aide TO_CHAR_DATETO_CHAR(date, format) de la langue anglaise pour la conversion.

Si vous sélectionnez Using TO_CHAR_DATE_LS function (NLS care), SSMA convertit la fonction à l’aide TO_CHAR_DATE_LSTO_CHAR(date, format) du langage de session pour la conversion

Lorsque vous sélectionnez un mode de conversion dans la zone Mode , SSMA applique le paramètre suivant :

Mode par défaut/optimiste : utilisation de la fonction TO_CHAR_DATE
Mode complet : utilisation de la fonction TO_CHAR_DATE_LS (soins NLS)
Générer une erreur pour DBMS_SQL. PARSE Si vous sélectionnez Erreur, SSMA génère une erreur lors de la conversion DBMS_SQL.PARSE.

Si vous sélectionnez Avertissement, SSMA génère un avertissement lors de la conversion DBMS_SQL.PARSE.

Lorsque vous sélectionnez un mode de conversion dans la zone Mode , SSMA applique le paramètre suivant :
Mode par défaut/optimiste/plein : erreur
Utiliser ISNULL dans les appels de fonction CONCAT ISNULL l’instruction est utilisée dans CONCAT les appels de fonction pour émuler le comportement Oracle. Les options suivantes sont présentes pour ce paramètre :

OUI

NO

Lorsque vous sélectionnez un mode de conversion dans la zone Mode , SSMA applique le paramètre suivant :

Mode par défaut/optimiste : Non
Mode plein : Oui
Utiliser ISNULL dans les appels de fonction REPLACE ISNULL l’instruction est utilisée dans REPLACE les appels de fonction pour émuler le comportement Oracle. Les options suivantes sont présentes pour ce paramètre :

OUI

NO

Lorsque vous sélectionnez un mode de conversion dans la zone Mode , SSMA applique le paramètre suivant :

Mode par défaut/optimiste : Non
Mode plein : Oui
Utiliser la fonction convert native lorsque cela est possible Si vous sélectionnez Oui, SSMA convertit la TO_CHAR(date, format) fonction de conversion native lorsque cela est possible.

Si vous sélectionnez Non, SSMA convertit les TO_CHAR(date, format) options de TO_CHAR_DATE conversion de TO_CHAR(date, format) ou TO_CHAR_DATE_LS (elle est définie par conversion de TO_CHAR).

Lorsque vous sélectionnez un mode de conversion dans la zone Mode , SSMA applique le paramètre suivant :

Mode par défaut/optimiste : Oui
Mode plein : Non

Messages de conversion

Terme Définition
Générer des messages sur les problèmes Spécifie si SSMA génère des messages d’information pendant la conversion, les affiche dans le volet Sortie et les ajoute au code converti.

Lorsque vous sélectionnez un mode de conversion dans la zone Mode , SSMA applique le paramètre suivant :

Mode par défaut/optimiste : Non
Mode plein : Non

Options diverses

Terme Définition
Cast d’expressions ROWNUM en tant qu’entiers Lorsque SSMA convertit des ROWNUM expressions, elle convertit l’expression en clause TOP , suivie de l’expression. L’exemple suivant montre ROWNUM dans une instruction Oracle DELETE :

DELETE FROM Table1
WHERE ROWNUM < expression and Field1 >= 2

L’exemple suivant montre le transact-SQL résultant :

DELETE TOP (expression-1)
FROM Table1
WHERE Field1>=2

L’expression TOP exige que l’expression TOP de clauses soit évaluée à un entier. Si l’entier est négatif, l’instruction génère une erreur.

Si vous sélectionnez Oui, SSMA convertit l’expression en tant qu’entier.

Si vous sélectionnez Non, SSMA marque toutes les expressions non entières comme une erreur dans le code converti.

Lorsque vous sélectionnez un mode de conversion dans la zone Mode , SSMA applique le paramètre suivant :

Mode par défaut/plein : Non
Mode optimiste : Oui
Mappage de schéma par défaut Ce paramètre spécifie comment les schémas Oracle sont mappés aux schémas SQL Server. Deux options sont disponibles dans ce paramètre :

Schéma à base de données : Dans ce mode, le schéma sch1 Oracle est mappé par défaut au dbo schéma SQL Server dans la base de données sch1SQL Server.

Schéma à schéma : dans ce mode, le schéma sch1 Oracle est mappé par défaut au sch1 schéma SQL Server dans la base de données SQL Server par défaut fournie dans la boîte de dialogue de connexion.

Lorsque vous sélectionnez un mode de conversion dans la zone Mode , SSMA applique le paramètre suivant :

Mode par défaut/optimiste/plein : schéma à base de données
Émuler le comportement Oracle Null dans les clauses ORDER BY NULL les valeurs sont classées différemment dans SQL Server et Oracle :

Dans SQL Server, NULL les valeurs sont les valeurs les plus basses d’une liste ordonnée. Dans une liste croissant, NULL les valeurs s’affichent en premier.

Dans Oracle, NULL les valeurs sont les valeurs les plus élevées d’une liste ordonnée. Par défaut, NULL les valeurs apparaissent en dernier dans une liste d’ordre croissant.

Oracle a NULLS FIRST et NULLS LAST clauses, ce qui vous permet de modifier la façon dont oracle commandes NULL.

SSMA peut émuler le comportement d’Oracle ORDER BY en vérifiant les NULL valeurs. Il passe ensuite les commandes par NULL valeurs dans l’ordre spécifié, puis commande par d’autres valeurs.

Si vous sélectionnez Oui, SSMA convertit l’instruction Oracle de manière à émuler le comportement d’Oracle ORDER BY .

Si vous sélectionnez Non, SSMA ignore les règles Oracle et génère un message d’erreur lorsqu’il rencontre les clauses et NULLS LAST les NULLS FIRST règles.

Lorsque vous sélectionnez un mode de conversion dans la zone Mode , SSMA applique le paramètre suivant :

Mode par défaut/optimiste : Non
Mode plein : Oui
Émuler les exceptions de nombre de lignes dans SELECT Si une SELECT instruction avec une clause INTO ne retourne aucune ligne, Oracle déclenche une NO_DATA_FOUND exception. Si l’instruction retourne deux lignes ou plus, l’exception TOO_MANY_ROWS est levée. L’instruction convertie dans SQL Server ne génère aucune exception si le nombre de lignes est différent d’un.

Si vous sélectionnez Oui, SSMA ajoute un appel à une procédure spéciale db_error_exact_one_row_check après chaque SELECT instruction. Cette procédure émule les exceptions et TOO_MANY_ROWS les NO_DATA_FOUND exceptions. Il s’agit de la valeur par défaut et permet de reproduire le comportement Oracle le plus proche possible. Vous devez toujours choisir Oui si le code source possède des gestionnaires d’exceptions qui traitent ces erreurs. Notez que si l’instruction se produit à l’intérieur d’une fonction définie par l’utilisateur, ce module est converti en procédure stockée, car l’exécution de procédures stockées et le SELECT déclenchement d’exceptions n’est pas compatible avec le contexte de fonction SQL Server.

Si vous sélectionnez Non, aucune exception n’est générée. Cela peut être utile lorsque SSMA convertit une fonction définie par l’utilisateur et que vous souhaitez qu’elle reste une fonction dans SQL Server

Lorsque vous sélectionnez un mode de conversion dans la zone Mode , SSMA applique le paramètre suivant :

Mode par défaut/optimiste/plein : Oui
Activer l’Conseiller de correctif Lorsque cette option est activée, SSMA tente d’apprendre des modifications que vous apportez dans le code T-SQL cible et vous suggère des correctifs de code potentiels dans un autre emplacement, où un modèle similaire peut être appliqué.

Lorsque vous sélectionnez un mode de conversion dans la zone Mode , SSMA applique le paramètre suivant :

Mode par défaut/optimiste/plein : Oui
Générer des alias de colonne d’expression constante Si l’expression dans la SELECT liste ne contient pas d’alias, SSMA peut générer un alias constant (par exemple expr1, , expr2etc.) ou utiliser une expression elle-même comme alias. Étant donné que les expressions peuvent obtenir une longueur assez longue et que la longueur du nom de colonne est limitée, il est plus sûr d’utiliser le nom de base constant pour ces alias. Même s’il s’agit d’une option plus sûre, il n’est parfois pas possible, car il peut y avoir des dépendances externes sur le jeu de données résultant. Dans ces cas, vous pouvez nommer des colonnes en fonction de leurs expressions de valeur, comme le comportement d’Oracle.

Lorsque vous sélectionnez un mode de conversion dans la zone Mode , SSMA applique le paramètre suivant :

Mode par défaut/optimiste : Oui
Mode plein : Non
Omettre les propriétés étendues En cas d’activation, SSMA n’ajoute pas de propriétés étendues aux objets qu’il crée dans la base de données cible.

Lorsque vous sélectionnez un mode de conversion dans la zone Mode , SSMA applique le paramètre suivant :

Mode par défaut/optimiste/plein : Non
Traduire des codes d’erreur Lorsqu’il est activé, le numéro d’erreur côté SQL Server cible est traduit en code d’erreur Oracle si le mappage est trouvé.

Lorsque vous sélectionnez un mode de conversion dans la zone Mode , SSMA applique le paramètre suivant :

Mode par défaut/plein : Oui
Mode optimiste : Non
Utiliser la spécification de type complète pour les références de type Lorsqu’il est activé, SSMA respecte la spécification de type complète (y compris l’échelle et la précision) pour les paramètres de routine et les valeurs de retour. Oracle n’autorise pas les arguments de type de données pour les paramètres de routine, mais il existe des cas où ils peuvent être dérivés implicitement, par exemple quand %TYPE et %ROWTYPE les attributs sont utilisés. Dans ce cas, SSMA peut utiliser une spécification de type complète (y compris la précision et l’échelle) lors de sa conversion en SQL Server.

Lorsque vous sélectionnez un mode de conversion dans la zone Mode , SSMA applique le paramètre suivant :

Mode par défaut/optimiste : Oui
Mode plein : Non
Utiliser ISNULL dans la concaténation de chaînes Oracle et SQL Server retournent des résultats différents lorsque les concaténations de chaîne incluent des NULL valeurs. Oracle traite la NULL valeur comme un jeu de caractères vide. SQL Server retourne NULL.

Si vous sélectionnez Oui, SSMA remplace le caractère de concaténation Oracle (||) par le caractère de concaténation SQL Server (+). SSMA vérifie également les expressions des deux côtés de la concaténation pour les NULL valeurs.

Si vous sélectionnez Non, SSMA remplace les caractères de concaténation, mais ne vérifie pas les NULL valeurs.

Lorsque vous sélectionnez un mode de conversion dans la zone Mode , SSMA applique le paramètre suivant :

Mode par défaut/optimiste/plein : Oui

Conversion d’objets

Terme Définition
Convertir des clés étrangères avec l’action référentielle SET NULL sur la colonne qui n’est PAS NULL Oracle permet de créer des contraintes de clé étrangère, où une SET NULL action n’a pas pu être effectuée, car les valeurs NULL ne sont pas autorisées dans la colonne référencée. SQL Server n’autorise pas cette configuration de clé étrangère.

Si vous sélectionnez Oui, SSMA génère des actions référentielles comme dans Oracle, mais vous devez apporter des modifications manuelles avant de charger la contrainte sur SQL Server. Par exemple, vous pouvez choisir NO ACTION au lieu de SET NULL.

Si vous sélectionnez Non, la contrainte est marquée comme une erreur.

Lorsque vous sélectionnez un mode de conversion dans la zone Mode , SSMA applique le paramètre suivant :

Mode par défaut/optimiste/plein : Non
Convertir des sous-types SSMA peut convertir des sous-types PL/SQL de deux façons :

Si vous sélectionnez Oui, SSMA crée un type SQL Server défini par l’utilisateur à partir d’un sous-type et l’utilise pour chaque variable de ce sous-type.

Si vous sélectionnez Non, SSMA remplace toutes les déclarations sources du sous-type par le type sous-jacent et convertit le résultat comme d’habitude. Dans ce cas, aucun type supplémentaire n’est créé dans SQL Server

Lorsque vous sélectionnez un mode de conversion dans la zone Mode , SSMA applique le paramètre suivant :

Mode par défaut/optimiste/plein : Non
Convertir des synonymes Les synonymes des objets Oracle suivants peuvent être migrés vers SQL Server :

Tables et tables d’objets

Vues et vues d’objets

Procédures stockées et fonctions

Vues matérialisées

Les synonymes des objets Oracle suivants peuvent être remplacés par des références directes aux objets :

Séquences

.

Objets de schéma de classe Java

Types d'objets définis par l'utilisateur

Les autres synonymes ne peuvent pas être migrés. SSMA génère des messages d’erreur pour le synonyme et toutes les références qui utilisent le synonyme.

Si vous sélectionnez Oui, SSMA crée des synonymes SQL Server et des références d’objet directes en fonction des listes précédentes.

Si vous sélectionnez Non, SSMA crée des références d’objet directes pour tous les synonymes répertoriés ici.

Lorsque vous sélectionnez un mode de conversion dans la zone Mode , SSMA applique le paramètre suivant :

Mode par défaut/optimiste/plein : Oui
Conversion des modules locaux Définit le type de sous-programme imbriqué Oracle (déclaré dans une procédure stockée ou une fonction autonome).

Si vous sélectionnez Inline, les appels de sous-programme imbriqués sont remplacés par son corps.

Si vous sélectionnez Procédures stockées, le sous-programme imbriqué sera converti en procédure stockée SQL Server et ses appels seront remplacés lors de cet appel de procédure.

Lorsque vous sélectionnez un mode de conversion dans la zone Mode , SSMA applique le paramètre suivant :

Mode par défaut/optimiste/plein : inline

Conversion des enregistrements

Terme Définition
Convertir l’enregistrement en tant que liste de variables distinctes SSMA peut convertir des enregistrements Oracle en variables distinctes et en variables XML avec une structure spécifique.

Si vous sélectionnez Oui, SSMA convertit l’enregistrement en une liste de variables distinctes lorsque cela est possible.

Si vous sélectionnez Non, SSMA convertit l’enregistrement en variables XML avec une structure spécifique.

Lorsque vous sélectionnez un mode de conversion dans la zone Mode , SSMA applique le paramètre suivant :

Mode par défaut/optimiste/plein : Oui
Utiliser SELECT... FOR XML lors de la conversion de SELECT... INTO pour la variable d’enregistrement Spécifie s’il faut générer un jeu de résultats XML lorsque vous sélectionnez une variable d’enregistrement.

Si vous sélectionnez Oui, l’instruction SELECT retourne du code XML.

Si vous sélectionnez Non, l’instruction SELECT retourne un jeu de résultats.

Lorsque vous sélectionnez un mode de conversion dans la zone Mode , SSMA applique le paramètre suivant :

Mode par défaut/optimiste/plein : Non

RETURNING Clause Conversion

Terme Définition
Convertir la clause RETURN dans l’instruction DELETE en OUTPUT Oracle fournit une RETURNING clause comme moyen d’obtenir immédiatement des valeurs supprimées. SQL Server fournit cette fonctionnalité avec la OUTPUT clause.

Si vous sélectionnez Oui, SSMA convertit RETURNING les clauses dans les instructions OUTPUT en DELETE clauses. Étant donné que les déclencheurs d’une table peuvent modifier des valeurs, la valeur retournée peut être différente dans SQL Server que dans Oracle.

Si vous sélectionnez Non, SSMA génère une SELECT instruction avant DELETE les instructions pour récupérer les valeurs retournées.

Lorsque vous sélectionnez un mode de conversion dans la zone Mode , SSMA applique le paramètre suivant :

Mode par défaut/optimiste/plein : Oui
Convertir la clause RETURN dans l’instruction INSERT en OUTPUT Oracle fournit une RETURNING clause comme moyen d’obtenir immédiatement des valeurs insérées. SQL Server fournit cette fonctionnalité avec la OUTPUT clause.

Si vous sélectionnez Oui, SSMA convertit une RETURNING clause dans une INSERT instruction OUTPUTen . Étant donné que les déclencheurs d’une table peuvent modifier des valeurs, la valeur retournée peut être différente dans SQL Server que dans Oracle.

Si vous sélectionnez Non, SSMA émule les fonctionnalités Oracle en insérant, puis en sélectionnant des valeurs dans une table de référence.

Lorsque vous sélectionnez un mode de conversion dans la zone Mode , SSMA applique le paramètre suivant :

Mode par défaut/optimiste/plein : Oui
Convertir la clause RETURN dans l’instruction UPDATE en OUTPUT Oracle fournit une RETURNING clause comme moyen d’obtenir immédiatement des valeurs mises à jour. SQL Server fournit cette fonctionnalité avec la OUTPUT clause.

Si vous sélectionnez Oui, SSMA convertit RETURNING les clauses dans les instructions OUTPUT en UPDATE clauses. Étant donné que les déclencheurs d’une table peuvent modifier des valeurs, la valeur retournée peut être différente dans SQL Server que dans Oracle.

Si vous sélectionnez Non, SSMA génère des instructions SELECT après UPDATE les instructions pour récupérer les valeurs retournées.

Lorsque vous sélectionnez un mode de conversion dans la zone Mode , SSMA applique le paramètre suivant :

Mode par défaut/optimiste/plein : Oui

Génération ROWID

Terme Définition
Générer une colonne ROWID Lorsque SSMA crée des tables dans SQL Server, il peut créer une colonne ROWID. Lorsque les données sont migrées, chaque ligne obtient une nouvelle UNIQUEIDENTIFIER valeur générée par la newid() fonction.

Si vous sélectionnez Oui, la ROWID colonne est créée sur toutes les tables et SQL Server génère des GUID en tant que valeurs d’insertion. Choisissez toujours Oui si vous envisagez d’utiliser le testeur SSMA.

Si vous sélectionnez Non, les colonnes ROWID ne sont pas ajoutées aux tables.

Ajoutez la colonne ROWID pour les tables avec des déclencheurs à ajouter ROWID pour les tables contenant des déclencheurs.

Lorsque vous sélectionnez un mode de conversion dans la zone Mode , SSMA applique le paramètre suivant :

Mode par défaut/optimiste : Ajouter une colonne ROWID pour les tables avec des déclencheurs

Mode plein : Oui
Générer un index unique sur la colonne ROWID Spécifie si SSMA génère une colonne d’index unique sur la ROWID colonne générée ou non. Si l’option est définie sur « YES », un index unique est généré et s’il est défini sur « NO », l’index unique n’est pas généré sur la ROWID colonne.

Lorsque vous sélectionnez un mode de conversion dans la zone Mode , SSMA applique le paramètre suivant :

Mode par défaut/optimiste/plein : Oui

Conversion de séquence et d’identité

Terme Définition
Convertir l’identité en tant que Oracle fournit plusieurs options de configuration pour les colonnes d’identité. Certaines de ces options ne sont pas prises en charge par la fonctionnalité d’identité dans SQL Server.

Une méthode permettant de conserver ces options consiste à convertir l’identité en tant que séquence.

Si vous sélectionnez Sequence, les colonnes d’identité Oracle ne sont plus converties en colonnes d’identité SQL. Au lieu de cela, une séquence sera créée et utilisée pour générer des valeurs par défaut pour la colonne.

Si vous sélectionnez Identité, les colonnes d’identité Oracle sont converties en colonnes d’identité SQL. Les options non prises en charge ne seront pas converties.

Si vous sélectionnez Best Fit, SSMA détermine la meilleure méthode de conversion d’ajustement (Identité ou Séquence) en fonction de la configuration de la colonne d’identité Oracle.
Convertir le générateur de séquences Dans Oracle, vous pouvez utiliser une séquence pour générer des identificateurs uniques.

SSMA peut convertir des séquences en éléments suivants.

Utilisation du générateur de séquence SQL Server.

Utilisation du générateur de séquenceS SSMA.

Utilisation de l’identité de colonne.

L’option par défaut consiste à utiliser le générateur de séquence SQL Server. Toutefois, SQL Server ne prend pas en charge l’obtention de la valeur de séquence actuelle (comme celle de la méthode de séquence CURRVAL Oracle). Reportez-vous au site de blog de l’équipe SSMA pour obtenir des conseils sur la migration de la méthode de séquence CURRVAL Oracle.

SSMA offre également une option pour convertir la séquence Oracle en émulateur de séquence SSMA. Il s’agit de l’option par défaut lorsque vous effectuez une conversion vers SQL Server avant 2012

Enfin, vous pouvez également convertir une séquence affectée à une colonne de la table en valeurs d’identité SQL Server. Vous devez spécifier le mappage entre les séquences à une colonne d’identité sous l’onglet Table Oracle
Convertir curRV en dehors des déclencheurs Visible uniquement lorsque le générateur de séquences de conversion est défini sur Utilisation de l’identité de colonne. Étant donné que les séquences Oracle sont des objets distincts des tables, de nombreuses tables qui utilisent Sequences utilisent un déclencheur pour générer et insérer une nouvelle valeur de séquence. SSMA commente ces instructions ou les marque comme des erreurs lorsque le commentaire génère des erreurs.

Si vous sélectionnez Oui, SSMA marque toutes les références aux déclencheurs extérieurs sur la séquence CURRVAL convertie avec un avertissement.

Si vous sélectionnez Non, SSMA marque toutes les références aux déclencheurs extérieurs sur la séquence CURRVAL convertie avec une erreur.

Conversion d’instructions

Terme Définition
Conversion de l’instruction MERGE Si vous sélectionnez Using INSERT, UPDATE, DELETE, instruction SSMA convertit l’instruction MERGE en INSERT, UPDATE, DELETE instructions.

Si vous sélectionnez Utilisation de l’instruction MERGE, SSMA convertit l’instruction MERGE en MERGE instruction dans SQL Server.

Lorsque vous sélectionnez un mode de conversion dans la zone Mode , SSMA applique le paramètre suivant :

Mode par défaut/optimiste/complet : utilisation de l’instruction MERGE
Convertir des appels en sous-programmes qui utilisent des arguments par défaut Les fonctions SQL Server ne prennent pas en charge l’omission des paramètres dans l’appel de fonction. En outre, les fonctions et procédures SQL Server ne prennent pas en charge les expressions comme valeurs de paramètre par défaut.

Si vous sélectionnez Oui et qu’un appel de fonction omet les paramètres, SSMA insère le mot clé par défaut dans la fonction et appelle à la position correcte. Ensuite, il marque l’appel avec un avertissement.

Si vous sélectionnez Non, SSMA marque les appels de fonction comme des erreurs.

Lorsque vous sélectionnez un mode de conversion dans la zone Mode , SSMA applique le paramètre suivant :

Mode par défaut/optimiste/plein : Oui
Convertir l’instruction FORALL en instruction WHILE Définit la façon dont SSMA traite FORALL les boucles sur les éléments de collection PL/SQL.

Si vous sélectionnez Oui, SSMA crée une WHILE boucle où les éléments de collection sont récupérés un par un.

Si vous sélectionnez Non, SSMA génère un ensemble de lignes à partir de la collection à l’aide nodes() de la méthode et l’utilise comme table unique. Cela est plus efficace, mais rend le code de sortie moins lisible.

Lorsque vous sélectionnez un mode de conversion dans la zone Mode , SSMA applique le paramètre suivant :

Mode par défaut/optimiste : Non
Mode plein : Oui
Convertir des appels de fonction en appels de procédure Certaines fonctions Oracle sont définies comme des transactions autonomes ou contiennent des instructions qui ne seraient pas valides dans SQL Server. Dans ces cas, SSMA crée une procédure et une fonction qui est un wrapper pour la procédure. La fonction convertie appelle la procédure d’implémentation.

SSMA peut convertir des appels vers la fonction wrapper en appels à la procédure. Cela crée du code plus lisible et peut améliorer les performances. Toutefois, le contexte ne l’autorise pas toujours ; Par exemple, vous ne pouvez pas remplacer un appel de fonction dans la SELECT liste par un appel de procédure. SSMA propose quelques options pour couvrir les cas courants :

Si vous sélectionnez Always, SSMA tente de convertir des appels de fonction wrapper en appels de procédure. Si le contexte actuel n’autorise pas cette conversion, un message d’erreur est généré. Ainsi, aucun appel de fonction n’est laissé dans le code généré.

Si vous sélectionnez Si possible, SSMA effectue un déplacement vers les appels de procédure uniquement si la fonction a des paramètres de sortie. Lorsque le déplacement n’est pas possible, l’attribut de sortie du paramètre est supprimé. Dans tous les autres cas, SSMA quitte les appels de fonction.

Si vous sélectionnez Never, SSMA conserve tous les appels de fonction en tant qu’appels de fonction. Parfois, ce choix peut être inacceptable en raison de raisons de performances.

Lorsque vous sélectionnez un mode de conversion dans la zone Mode , SSMA applique le paramètre suivant :

Mode par défaut/optimiste/plein : si possible
Convertir des instructions LOCK TABLE SSMA peut convertir de nombreuses LOCK TABLE instructions en indicateurs de table. SSMA ne peut pas convertir LOCK TABLE d’instructions qui contiennent PARTITION, SUBPARTITION, @dblinket les clauses, et NOWAIT marquent ces instructions avec des messages d’erreur de conversion.

Si vous sélectionnez Oui, SSMA convertit les instructions prises en charge LOCK TABLE en indicateurs de table.

Si vous sélectionnez Non, SSMA marque toutes les instructions avec des LOCK TABLE messages d’erreur de conversion.

Le tableau suivant montre comment SSMA convertit les modes de verrouillage Oracle :

Mode de verrouillage Oracle

ROW SHARE
ROW EXCLUSIVE
SHARE UPDATE = ROW SHARE
SHARE
SHARE
EXCLUSIVE

Indicateur de table SQL Server

ROWLOCK, HOLDLOCK
ROWLOCK, XLOCK, HOLDLOCK
ROWLOCK, HOLDLOCK
TABLOCK, HOLDLOCK
TABLOCK, XLOCK, HOLDLOCK
TABLOCKX, HOLDLOCK

Lorsque vous sélectionnez un mode de conversion dans la zone Mode , SSMA applique le paramètre suivant :

Mode par défaut/optimiste/plein : Oui
Convertir des instructions OPEN-FOR pour les paramètres REF CURSOR OUT Dans Oracle, l’instruction OPEN .. FOR peut être utilisée pour renvoyer un jeu de résultats au paramètre de type REF CURSORd’un OUT sous-programme. Dans SQL Server, les procédures stockées retournent directement les résultats des SELECT instructions.

SSMA peut convertir de nombreuses OPEN .. FOR instructions en SELECT instructions.

Si vous sélectionnez Oui, SSMA convertit l’instruction OPEN .. FOR en instruction SELECT , qui retourne le jeu de résultats au client.

Si vous sélectionnez Non, SSMA génère un message d’erreur dans le code converti et dans le volet Sortie.

Lorsque vous sélectionnez un mode de conversion dans la zone Mode , SSMA applique le paramètre suivant :

Mode par défaut/optimiste/plein : Oui
Convertir des instructions de traitement des transactions SSMA peut convertir des instructions de traitement des transactions Oracle :

Si vous sélectionnez Oui, SSMA convertit les instructions de traitement des transactions Oracle en instructions SQL Server.

Si vous sélectionnez Non, SSMA marque les instructions de traitement des transactions comme des erreurs de conversion.

Remarque : Oracle ouvre implicitement les transactions. Pour émuler ce comportement sur SQL Server, vous devez ajouter BEGIN TRANSACTION des instructions manuellement à l’endroit où vous souhaitez que vos transactions démarrent. Vous pouvez également exécuter la SET IMPLICIT_TRANSACTIONS ON commande au début de votre session. SSMA ajoute SET IMPLICIT_TRANSACTIONS ON automatiquement lors de la conversion de sous-routines avec des transactions autonomes.

Lorsque vous sélectionnez un mode de conversion dans la zone Mode , SSMA applique le paramètre suivant :

Mode par défaut/optimiste/plein : Oui

Voir aussi

Guide de référence de l’interface utilisateur (OracleToSQL)