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

S’applique à :SQL Server

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 de 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 des mappages de type 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 - <Article>, sélectionnez les 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 vous recommande d’utiliser le mappage par défaut, sauf si votre application nécessite un mappage différent. Pour plus d'informations, voir Data Type Mapping for Oracle Publishers.

  4. Cliquez sur 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 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 non-SQL Server (SGBD). 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 la valeur 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, @articleet @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_versionet tous les autres paramètres éventuellement requis 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 éventuellement requis 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 mapping_id, spécifiez les paramètres @source_dbms, @source_type, @destination_dbms, @destination_typeet tous les autres paramètres éventuellement 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 la valeur ORACLE pour @source_dbms et tous les autres paramètres éventuellement requis pour filtrer le jeu de résultats.

Exemples (Transact-SQL)

Cet exemple montre comment modifier une colonne avec un type de données Oracle nu Mo ER afin qu’elle soit mappée au type de données SQL Server numeric(38,38), au lieu du type de données float par défaut.

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

Mappage de type de données pour les serveurs de publication Oracle
Heterogeneous Database Replication
Concepts liés aux procédures stockées système de réplication
Configurer un serveur de publication Oracle