Mappage de type de données pour les serveurs de publication Oracle
S’applique à :SQL Server
Les types de données Oracle et les types de données Microsoft SQL Server ne correspondent pas toujours exactement. Dans la mesure du possible, le type de données correspondant est sélectionné automatiquement lors de la publication d'une table Oracle. Dans les cas où un mappage de type de données simple n'est pas clair, des mappages de type de données de remplacement sont fournis. Pour plus d'informations sur la sélection de mappages de remplacement, consultez la section « Spécification de mappages de type de données de remplacement » plus loin dans cette rubrique.
Le tableau suivant montre comment les types de données sont mappés par défaut entre Oracle et SQL Server lorsque les données sont déplacées du serveur de publication Oracle vers le serveur de distribution SQL Server. La colonne Alternatives indique si des mappages de remplacement sont disponibles.
Type de données Oracle | Type de données SQL Server | Autres solutions |
---|---|---|
BFILE | VARBINARY(MAX) | Oui |
BLOB | VARBINARY(MAX) | Oui |
CHAR([1-2000]) | CHAR([1-2000]) | Oui |
CLOB | VARCHAR(MAX) | Oui |
DATE | DATETIME | Oui |
FLOAT | FLOAT | Non |
FLOAT([1-53]) | FLOAT([1-53]) | Non |
FLOAT([54-126]) | FLOAT | Non |
INT | NUMERIC(38) | Oui |
INTERVAL | DATETIME | Oui |
LONG | VARCHAR(MAX) | Oui |
LONG RAW | IMAGE | Oui |
NCHAR([1-1000]) | NCHAR([1-1000]) | Non |
NCLOB | NVARCHAR(MAX) | Oui |
NUMBER | FLOAT | Oui |
NUMBER([1-38]) | NUMERIC([1-38]) | Non |
NUMBER([0-38],[1-38]) | NUMERIC([0-38],[1-38]) | Oui |
NVARCHAR2([1-2000]) | NVARCHAR([1-2000]) | Non |
RAW([1-2000]) | VARBINARY([1-2000]) | Non |
real | FLOAT | Non |
ROWID | CHAR(18) | Non |
timestamp | DATETIME | Oui |
TIMESTAMP(0-7) | DATETIME | Oui |
TIMESTAMP(8-9) | DATETIME | Oui |
TIMESTAMP(0-7) WITH TIME ZONE | VARCHAR(37) | Oui |
TIMESTAMP(8-9) WITH TIME ZONE | VARCHAR(37) | Non |
TIMESTAMP(0-7) WITH LOCAL TIME ZONE | VARCHAR(37) | Oui |
TIMESTAMP(8-9) WITH LOCAL TIME ZONE | VARCHAR(37) | Non |
UROWID | CHAR(18) | Non |
VARCHAR2([1-4000]) | VARCHAR([1-4000]) | Oui |
Règles de mappage des types de données
Tenez compte des problèmes de type de données suivants lors de la réplication de données d'une base de données Oracle.
Types de données non pris en charge
Les types de données suivants ne sont pas pris en charge ; les colonnes de ces types ne peuvent pas être répliquées :
Types d’objets
Types XML
Varrays
Tables imbriquées
Colonnes utilisant REF
Le type de données DATE
Les dates dans SQL Server vont de 1753 A.D. à 9999 A.D., tandis que les dates dans Oracle sont comprises entre 4712 B.C. et 4712 A.D. Si une colonne de type DATE contient des valeurs hors limites pour SQL Server, sélectionnez l’autre type de données pour la colonne, qui est VARCHAR(19).
Types FLOAT et NUMBER
L'échelle et la précision spécifiées lors du mappage des types de données FLOAT et NUMBER dépendent de l'échelle et de la précision spécifiées pour la colonne utilisant le type de données dans la base de données Oracle. La précision est le nombre de chiffres qui composent un nombre. L'échelle est le nombre de chiffres à droite du séparateur décimal dans un nombre. Par exemple, le nombre 123,45 a une précision de 5 et une échelle de 2.
Oracle permet de définir des nombres avec une échelle supérieure à la précision, telle que NU Mo ER(4,5), mais SQL Server exige que la précision soit égale ou supérieure à l’échelle. Afin d'éviter les troncations de données, si l'échelle est supérieure à la précision sur le serveur de publication Oracle, la précision est définie comme étant égale à l'échelle lorsque le type de données est mappé : NUMBER(4,5) sera mappé comme NUMERIC(5,5).
Remarque
Si vous ne spécifiez pas d’échelle et de précision pour NU Mo ER, SQL Server utilise par défaut l’échelle maximale (8) et la précision (38). Nous vous recommandons de définir une échelle et une précision spécifiques dans Oracle, afin d'optimiser le stockage et les performances lorsque les données sont répliquées.
Types d'objets volumineux
Oracle prend en charge jusqu'à 4 gigaoctets (Go), alors que SQL Server prend en charge jusqu'à 2 Go. Les données répliquées au-delà de 2 Go sont tronquées.
Si une table Oracle comporte une colonne BFILE, les données de la colonne sont stockées dans le système de fichiers. Le compte d'utilisateur d'administration de réplication doit recevoir le droit d'accès au répertoire où les données sont stockées, via la syntaxe suivante :
GRANT READ ON DIRECTORY <directory_name> TO <replication_administrative_user_schema>
Pour plus d’informations sur les types d’objets volumineux, consultez la section « Observations sur les objets volumineux » dans la rubrique Problèmes et limitations de conception des serveurs de publication Oracle.
Spécification de mappages de type de données de remplacement
En général, le mappage de type de données par défaut est approprié, mais pour un certain nombre de types de données Oracle, vous pouvez sélectionner un mappage de type de données à partir d'un ensemble de mappages de remplacement au lieu d'utiliser les mappages par défaut. Il existe deux façons de spécifier des mappages de remplacement :
Remplacer la valeur par défaut par article à l'aide de procédures stockées ou de l'Assistant Nouvelle publication.
Remplacer en totalité toutes les valeurs par défaut pour les prochains articles à l'aide de procédures stockées (les valeurs par défaut restent inchangées pour les articles existants).
Pour spécifier des mappages de types de données de remplacement, consultez Spécifier des mappages de types de données pour un Serveur de publication Oracle.
Voir aussi
Configurer un serveur de publication Oracle
Problèmes et limitations de conception des serveurs de publication Oracle
Vue d’ensemble de la publication Oracle
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour