Spécifier des mappages de types de données pour un Serveur de publication Oracle

S’applique à :yesSQL Server (toutes les versions prises en charge)

Cette rubrique explique comment spécifier des mappages de types de données pour un serveur de publication Oracle dans SQL Server à l’aide de SQL Server Management Studio ou Transact-SQL. Bien qu'un jeu de mappages de type de données par défaut soit fourni pour les serveurs de publication Oracle, il peut être nécessaire de spécifier des mappages différents pour une publication donnée.

Dans cette rubrique

Utilisation de SQL Server Management Studio

Spécifiez les mappages de types de données sous l’onglet Mappage des données de la boîte de dialogue Propriétés de l’article - <Boîte de dialogue Article> . Cette option est disponible à partir de la page Articles de l’Assistant Nouvelle publication et de la boîte de dialogue Propriétés de publication - <Publication> . Pour plus d’informations sur l’utilisation de l’Assistant et sur l’accès à la boîte de dialogue, consultez Créer une publication à partir d’une base de données Oracle et Afficher et modifier les propriétés d’une publication.

Pour spécifier un mappage de types de données

  1. Dans la page Articles de l’Assistant Nouvelle publication ou de la boîte de dialogue Propriétés de publication - <Publication> , sélectionnez un tableau, puis cliquez sur Propriétés de l’article.

  2. Cliquez sur Définir les propriétés de l'article de Table en surbrillance.

  3. Sous l’onglet Mappage des données de la boîte de dialogue Propriétés de l’article - <Boîte de dialogue Article> , sélectionnez des mappages dans la colonne Type de données de l’Abonné :

    • Pour certains types de données, il existe uniquement une seule possibilité de mappage dans laquelle la colonne de la grille de propriétés est en lecture seule.

    • Pour certains types, vous pouvez sélectionner plus d'un type. Microsoft recommande d'utiliser le mappage par défaut si l'application ne nécessite pas un mappage différent. Pour plus d'informations, voir Data Type Mapping for Oracle Publishers.

  4. Sélectionnez OK.

Utilisation de Transact-SQL

Vous pouvez spécifier des mappages de type de données personnalisés par programme à l'aide des procédures stockées de réplication. Vous pouvez également définir les mappages par défaut qui sont utilisés lors du mappage de types de données entre Microsoft SQL Server et un système de gestion de base de données (SGBD) non-SQL Server. Pour plus d'informations, voir Data Type Mapping for Oracle Publishers.

Pour définir des mappages de type de données personnalisés lors de la création d'un article appartenant à une publication Oracle

  1. S'il n'en existe pas encore, créez une publication Oracle.

  2. Sur le serveur de distribution, exécutez sp_addarticle. Spécifiez une valeur de 0 pour @use_default_datatypes. Pour plus d’informations, consultez définir un Article.

  3. Sur le serveur de distribution, exécutez sp_helparticlecolumns pour afficher le mappage existant pour une colonne dans un article publié.

  4. Sur le serveur de distribution, exécutez sp_changearticlecolumndatatype. Spécifiez le nom du serveur de publication Oracle pour @publisher, ainsi que @publication, @article et @column pour définir la colonne publiée. Spécifiez le nom du type de données SQL Server à mapper pour @type, ainsi que @length, @precision et @scale, le cas échéant.

  5. Sur le serveur de distribution, exécutez sp_articleview. Cela crée la vue utilisée pour générer l'instantané à partir de la publication Oracle.

Pour spécifier un mappage comme mappage par défaut pour un type de données

  1. (Facultatif) Exécutez sp_getdefaultdatatypemappingsur une base de données quelconque du serveur de distribution. Spécifiez @source_dbms, @source_type, @destination_dbms, @destination_version et tous les autres paramètres nécessaires pour identifier le SGBD source. Les informations sur le type de données actuellement mappé dans le SGBD de destination sont retournées à l'aide des paramètres de sortie.

  2. (Facultatif) Exécutez sp_helpdatatypemapsur une base de données quelconque du serveur de distribution. Spécifiez @source_dbms et tous les autres paramètres nécessaires pour filtrer le jeu de résultats. Notez la valeur de mapping_id pour le mappage souhaité dans le jeu de résultats.

  3. Exécutez sp_setdefaultdatatypemappingsur une base de données quelconque du serveur de distribution.

    • Si vous connaissez la valeur souhaitée de mapping_id obtenue à l’étape 2, spécifiez-la pour @mapping_id.

    • Si vous ne connaissez pas le mapping_id, spécifiez les paramètres @source_dbms, @source_type, @destination_dbms, @destination_type et tous les autres paramètres requis pour identifier un mappage existant.

Pour rechercher les types de données valides pour un type de données Oracle donné

  1. Exécutez sp_helpdatatypemapsur une base de données quelconque du serveur de distribution. Spécifiez une valeur d’ORACLE pour @source_dbms et les autres paramètres nécessaires pour filtrer le jeu de résultats.

Exemples (Transact-SQL)

Cet exemple change une colonne avec le type de données Oracle NUMBER pour qu’elle soit mappée vers le type de données SQL Servernumeric(38,38), au lieu du type par défaut float.

EXEC sp_changearticlecolumndatatype 
    @publication = 'OraPublication', 
    @publisher = 'OraPublisher', 
    @article = 'OraArticle', 
    @column = 'OraArticleCol', 
    @type = 'numeric', 
    @scale = 38, 
    @precision = 38;
GO

Cet exemple de requête retourne les mappages par défaut et de remplacement pour le type de données Oracle 9 CHAR.

EXEC sp_helpdatatypemap 
    @source_dbms = N'ORACLE', 
    @source_version = 9,
    @source_type = N'CHAR';
GO

Cet exemple de requête retourne les mappages par défaut pour le type de données Oracle 9 NUMBER lorsqu'il est spécifié sans échelle ni précision.

EXEC sp_helpdatatypemap 
    @source_dbms = N'ORACLE', 
    @source_version = 9,
    @source_type = N'NUMBER',
    @defaults_only = 1;
GO

Voir aussi

Data Type Mapping for Oracle Publishers
Heterogeneous Database Replication
Replication System Stored Procedures Concepts
Configurer un serveur de publication Oracle