Partager via


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

Cette rubrique explique comment spécifier des mappages de type de données pour un Serveur de publication Oracle dans SQL Server 2012 à 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

  • Pour spécifier des mappages de type de données pour un Serveur de publication Oracle, à l'aide de :

    SQL Server Management Studio

    Transact-SQL

Utilisation de SQL Server Management Studio

Spécifiez des mappages de types de données sur l'onglet Mappage de données de la boîte de dialogue Propriétés de l'article - <article>. Ceci est disponible à partir de la page Articles de l'Assistant Nouvelle publication et de la boîte de dialogue Propriétés de la publication - <publication>. Pour plus d'informations sur l'utilisation de l'Assistant et 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. Sur la page Articles de l'Assistant Nouvelle publication ou de la boîte de dialogue Propriétés de la publication - <publication>, sélectionnez une table, 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. Sur l'onglet Mappage de données de la boîte de dialogue Propriétés de l'article - <article>, sélectionnez des mappages dans la colonne Type de données de l'abonné :

    • Pour certains types de données, il n'y a qu'un seul mappage possible, auquel cas la colonne de la grille des 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, consultez Mappage de type de données pour les serveurs de publication Oracle.

  4. Cliquez sur OK.  

Icône de flèche utilisée avec le lien Retour en haut[Top]

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, consultez Mappage de type de données pour les serveurs de publication Oracle.

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, @article et @column pour définir la colonne publiée. Spécifiez le nom du type de données SQL Server vers lequel effectuer le mappage 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_getdefaultdatatypemapping sur 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 é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_helpdatatypemap sur 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_setdefaultdatatypemapping sur 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_type et 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é

  • Exécutez sp_helpdatatypemap sur 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 modifie une colonne avec le type de données Oracle NUMBER afin qu'elle soit mappée vers le type de données SQL Server numeric(38,38), à la place du type de données 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

Icône de flèche utilisée avec le lien Retour en haut[Top]

Voir aussi

Concepts

Mappage de type de données pour les serveurs de publication Oracle

Réplication hétérogène d'une base de données

Concepts liés aux procédures stockées système de réplication

Configurer un serveur de publication Oracle