Problèmes liés aux consommateurs de données

Cette rubrique fournit des informations pour le dépannage des problèmes affectant les consommateurs de données.

SQL Server Integration Services

Authentification unique de l’entreprise

Lorsque vous utilisez Enterprise Sign-On unique avec SQL Server Integration Services, vous devrez peut-être entrer une valeur d’espace réservé pour le nom d’utilisateur et le mot de MS$SAME passe. Lors de l'utilisation des liaisons de données, vous pouvez configurer l'authentification unique de l'entreprise pour une utilisation avec SQL Server Integration Services.

  1. Dans la boîte de dialogue Connexion , cliquez sur Authentification unique pour la méthode sécurité.

  2. Sélectionnez une application affiliée dans la zone de liste déroulante.

  3. Dans la boîte de dialogue All , cliquez sur Mot de passe , puis sur Modifier la valeur. Dans la boîte de dialogue Modifier la valeur de propriété , entrez MS$SAME pour la valeur de la propriété, puis cliquez sur OK.

  4. Dans la boîte de dialogue All , cliquez sur ID d’utilisateur , puis sur Modifier la valeur. Dans la boîte de dialogue Modifier la valeur de propriété , entrez MS$SAME pour la valeur de la propriété, puis cliquez sur OK.

  5. Dans la boîte de dialogue Connexion , cliquez sur Tester. Les résultats sont affichés dans la boîte de dialogue Liaisons de données Microsoft.

  6. Cliquez sur OK pour enregistrer les informations de configuration.

FastLoad pour insérer une valeur TIMESTAMP

Lorsque vous utilisez SQL Server destination OLE DB Integration Services avec FastLoad pour insérer SQL Server valeurs datetime ou datetime2 dans une colonne DB2 TIMESTAMP, vous pouvez rencontrer cette erreur.

La représentation sous forme de chaîne d'une valeur DateTime n'est pas une valide.

Pour contourner ce problème, vous devez définir la propriété de source de données Fournisseur de données Utiliser les métadonnées anticipées sur true.

Use Early Metadata=True

Mappage de type de données

Lorsque vous utilisez l'Assistant Importation et Exportation SQL Server Integration Services, depuis Microsoft SQL Server Management Studio ou Business Intelligence Design Studio, vous pouvez personnaliser les conversions de données par défaut en modifiant des fichiers de mappage XML. Les fichiers de mappage XML de l'Assistant Importation et Exportation sont situés dans le dossier suivant.

C:\Program Files\Microsoft SQL Server\100\DTS\MappingFiles
C:\Program Files (x86)\Microsoft SQL Server\100\DTS\MappingFiles

Pour mapper correctement des types de données character et decimal IBM DB2 pour i5/OS à des types de données SQL Server, les fichiers de mappage de données doivent être étendus de manière à inclure la forme longue du synonyme de type de données DB2. Par exemple, ajoutez le mappage de type de données suivant entre la source INTEGER DB2 et SQL Server. Ce mappage est compatible avec SQLOLEDB, SQLNCL, SQLNCLI10 et System.Data.SqlClient.SqlConnection. Il remplace la forme abrégée de la valeur SourceDataType INT par la forme longue INTEGER.

Le mappage suivant pour la valeur INT de DB2 est compatible avec une source DB2 pour z/OS V9.

<!-- INT -->
<dtm:DataTypeMapping>
<dtm:SourceDataType>
<dtm:DataTypeName>INT</dtm:DataTypeName>
</dtm:SourceDataType>
<dtm:DestinationDataType>
<dtm:SimpleType>
<dtm:DataTypeName>INT</dtm:DataTypeName>
</dtm:SimpleType>
</dtm:DestinationDataType>
</dtm:DataTypeMapping>

Le mappage de type de données suivant pour la valeur INTEGER de DB2 est compatible avec une source DB2 pour i5/OS V6R1.

<!-- INTEGER -->
<dtm:DataTypeMapping>
<dtm:SourceDataType>
<dtm:DataTypeName>INTEGER</dtm:DataTypeName>
</dtm:SourceDataType>
<dtm:DestinationDataType>
<dtm:SimpleType>
<dtm:DataTypeName>INT</dtm:DataTypeName>
</dtm:SimpleType>
</dtm:DestinationDataType>
</dtm:DataTypeMapping>

Fichiers de mappage des types de données

Le tableau suivant décrit les trois fichiers de mappage que vous pouvez modifier lors de l'utilisation du fournisseur de données.

Nom du type de données DB2 DB2ToMSSql DB2ToMSSql10 DB2ToSSIS10
TEMPS DATETIME time DT_DBTIME
timestamp DATETIME datetime2 DT_DBTIMESTAMP2
DATE DATETIME DATE DT_DBDATE
CHAR CHAR CHAR DT_STR
CHAR () FOR BIT DATA BINARY BINARY DT_BYTES
CHAR () FOR MIXED DATA NCHAR NCHAR DT_WSTR
CHAR () FOR SBCS DATA CHAR CHAR DT_STR
CHARACTER CHAR CHAR DT_STR
CHARACTER () FOR BIT DATA BINARY BINARY DT_BYTES
CHARACTER () FOR MIXED DATA NCHAR NCHAR DT_WSTR
CHARACTER () FOR SBCS DATA CHAR CHAR DT_STR
NATIONAL CHARACTER NCHAR NCHAR DT_WSTR
VARCHAR VARCHAR VARCHAR DT_STR
VARCHAR () FOR BIT DATA VARBINARY VARBINARY DT_BYTES
VARCHAR () FOR MIXED DATA NVARCHAR NVARCHAR DT_WSTR
VARCHAR () FOR SBCS DATA VARCHAR VARCHAR DT_STR
CHARACTER VARYING VARCHAR VARCHAR DT_STR
CHARACTER VARYING () FOR BIT DATA VARBINARY VARBINARY DT_BYTES
CHARACTER VARYING () FOR MIXED DATA NVARCHAR NVARCHAR DT_WSTR
CHARACTER VARYING () FOR SBCS DATA VARCHAR VARCHAR DT_STR
NATIONAL CHARACTER VARYING NVARCHAR NVARCHAR DT_WSTR
LONG VARCHAR FOR BIT DATA image image DT_IMAGE
LONG VARCHAR texte texte DT_TEXT
GRAPHIC NCHAR NCHAR DT_WSTR
VARGRAPHIC NVARCHAR NVARCHAR DT_WSTR
GRAPHIC VARYING NVARCHAR NVARCHAR DT_WSTR
SMALLINT SMALLINT SMALLINT DT_I2
INT INT INT DT_14
INTEGER INT INT DT_14
bigint bigint bigint DT_18
DECIMAL NUMERIC NUMERIC DT_NUMERIC
NUMERIC NUMERIC NUMERIC DT_NUMERIC
real RÉEL RÉEL DT_R4
FLOAT FLOAT FLOAT DT_R8
DOUBLE FLOAT FLOAT DT_R8
DOUBLE PRECISION FLOAT FLOAT DT_R8
BLOB image image DT_BYTES
BINARY LARGE OBJECT image image DT_BYTES
CLOB texte texte DT_TEXT
CLOB () FOR MIXED DATA ntext ntext DT_NTEXT
CLOB () FOR SBCS DATA texte texte DT_TEXT
CHAR LARGE OBJECT texte texte DT_TEXT
CHAR LARGE OBJECT () FOR MIXED DATA ntext ntext DT_NTEXT
CHAR LARGE OBJECT () FOR SBCS DATA texte texte DT_TEXT
CHARACTER LARGE OBJECT texte texte DT_TEXT
CHARACTER LARGE OBJECT () FOR MIXED DATA ntext ntext DT_NTEXT
CHARACTER LARGE OBJECT () FOR SBCS DATA texte texte DT_TEXT
130 ntext ntext DT_NTEXT

Après avoir modifié un fichier de mappage, vous devez fermer puis rouvrir l'Assistant Importation et Exportation SQL Server ou Business Intelligence Development Studio, selon l'environnement que vous utilisez.

Pour plus d’informations sur la configuration de SQL Server 2008 Integration Services, consultez la rubrique Importation et exportation de données à l’aide de l’Assistant Importation et Exportation SQL Server dans SQL Server Documentation en ligne (https://go.microsoft.com/fwlink/?LinkId=193204).

Personnalisation des composants de flux de données

Les composants de flux de données SQL Server Integration Services permettent d'effectuer des transformations par défaut et personnalisées. Les transformations personnalisées sont basées sur du code personnalisé fourni par le développeur.

Les fichiers de mappage SQL Server Integration Services au format XML sont destinés à être utilisés avec l'Assistant Importation et Exportation. Ces fichiers ne sont pas destinés à être utilisés avec le flux de données. SQL Server Integration Services offre une classe PipelineBuffer pour permettre aux développeurs d'entreprise de personnaliser un mappage de données dans le flux de données. Pour plus d’informations sur la personnalisation des composants de flux de données à l’aide de SQL Server Integration Services 2008, consultez la rubrique Utilisation des types de données dans la rubrique Data Flow dans SQL Server documentation en ligne (https://go.microsoft.com/fwlink/?LinkId=241523).

Réplication SQL Server

Dériver les paramètres

La réplication SQL Server requiert que le paramètre Dériver le paramètre soit défini sur FALSE.

Mappage de type de données

La réplication SQL Server peut convertir des données de manière incorrecte, sur la base des mappages par défaut de SQL Server aux types de données DB2. Il est recommandé d'examiner et de réviser les mappages des types de données de réplication à l'aide des procédures stockées système de SQL Server.

  • sp_helpdatatypemap
    
  • sp_getdefaultdatatypemapping
    
  • sp_setdefaultdatatypemapping
    

    Pour plus d’informations, consultez la rubrique Procédures stockées système (Transact-SQL) dans la documentation en ligne de SQL Server (http://go.microsoft.com/fwlink/?LinkId=241524).

    Problème lors du mappage de SQL Server DATETIME2 à DBTYPE_TIMESTAMP

    La réplication SQL Server 2008 vers DB2 pour z/OS peut échouer avec l'exception SQLCODE -188 (la représentation de chaîne d'une valeur datetime n'est pas une valeur datetime valide). Ce problème se produit lorsque la réplication est configurée pour mapper DATETIME2 à DB2 VARCHAR(27) et qu'elle utilise des commandes d'article d'abonnement avec des valeurs de données de littéraux de chaîne.

    Solution au problème avec des instructions pas à pas

    Reconfigurez la réplication SQL Server 2008 pour mapper DATETIME2 à DB2 TIMESTAMP et des commandes d'article d'abonnement avec des paramètres. Le fournisseur de données pourra ainsi mettre en forme DATETIME2 en tant que structure DB2 TIMESTAMP prise en charge par le serveur de base de données IBM DB2.

  1. Identifiez le mappage de type de données à modifier. Utilisez MASTER pour toutes les étapes.

    select * from

    sys.fn_helpdatatypemap
    (
       'MSSQLSERVER',
        '%',
        '%',
        '%',
        '%',
        '%',
        0
    )
    
  2. Où destination_dbms = 'DB2' et source_type = 'datetime2' Les résultats doivent indiquer la propriété mapping_id à modifier. Le tableau suivant illustre le volet de résultats correspondant à cet exemple, dans lequel la valeur de la propriété mapping_id est 189.

    mapping_id source_dbms source_type destination_dbms destination_type destination_length
    189 MSSQLSERVER datetime2 DB2 VARCHAR 27
  3. Supprimez le mappage du type de données.

    exec sp_dropdatatypemapping 189
    
  4. Ajoutez le mappage du type de données.

    exec  sp_adddatatypemapping
         @source_dbms = 'MSSQLSERVER',
         @source_type = 'datetime2',
         @destination_dbms = 'DB2',
         @destination_type = 'TIMESTAMP',
         @destination_nullable = 1,
         @destination_createparams = 0,
         @dataloss = 0,
         @is_default = 1
    
  5. Réexécutez la requête pour vérifier le nouveau mappage du type de données.

    select * from

    select * from sys.fn_helpdatatypemap
    (
       'MSSQLSERVER',
        '%',
        '%',
        '%',
        '%',
        '%',
        0
    )
    
  6. Où destination_dbms = 'DB2' et source_type = 'datetime2'

    Les résultats doivent indiquer la propriété mapping_id à modifier. Le tableau suivant illustre le volet de résultats correspondant à cet exemple, dans lequel la valeur de la propriété mapping_id est 189.

    mapping_id source_dbms source_type destination_dbms destination_type destination_length
    494 MSSQLSERVER datetime2 DB2 timestamp NULL
  7. Identifiez l'article d'abonnement de réplication à reconfigurer. Utilisez l'instruction Transact-SQL USE pour basculer de la base de données principale à la base de données à partir de laquelle vous effectuez la réplication.

    USE [Test]

    select name, status from sysarticles
    
  8. Les résultats doivent afficher le nom de l'article à modifier. Dans le cadre de cet exemple, le tableau suivant affiche les résultats dont le nom est DB2TS01.

    name status
    DB2TS01 25
  9. Si la valeur d'état est 1 ou 9, l'article est configuré pour la mise en forme en littéral de chaîne.

    Si la valeur d'état est 17 ou 25, l'article est configuré pour la mise en forme paramétrable.

  10. Configurez l'article d'abonnement de réplication pour les commandes paramétrables.

    USE [Test]

    DECLARE @publication AS sysname;
    DECLARE @article AS sysname;
    SET @publication = N'DB2TS_PUB01';
    SET @article = N'DB2TS01';
    EXEC sp_changearticle @publication, @article, 'status', 'parameters', 0, 0;
    

    Pour plus d’informations, consultez Concepts relatifs aux procédures stockées du système de réplication (https://go.microsoft.com/fwlink/?LinkId=241525) dans SQL Server documentation en ligne.

L’opération INSERT de la réplication échoue avec l’erreur 8152 : les données binaires ou de chaîne sont tronquées

L’opération INSERT de la réplication SQL Server risque d’échouer avec l’erreur SQL Server 8152 (les données binaires ou de chaîne sont tronquées). Cela peut se produire lorsque (1) Fournisseur de données n’est pas configuré pour utiliser les métadonnées anticipées et (2) La réplication n’est pas configurée pour utiliser des instructions INSERT paramétrables.

Reconfigurez la connexion du fournisseur de données pour spécifier « Use Early Metadata=true » dans la définition de la source de données de l’abonné de réplication SQL Server.

Pour plus d’informations, consultez Configurer des fournisseurs de données pour les liaisons de données DB2 (DB2) Toutes les propriétés dans la documentation du fournisseur OLE DB pour DB2.

Configurez à nouveau Réplication SQL Server article d’abonnement pour inclure l’option « 24 » (« Inclut le nom de colonne dans les instructions INSERT et utilise des instructions paramétrables »).

Pour plus d’informations, consultez Réplication SQL Server sp_addarticle (Transact-SQL) dans SQL Server documentation.

SQL Server Analysis Services

Lorsque vous élaborez des cubes qui sont utilisés avec SQL Server Analysis Services, les outils SSAS génèrent des commandes SQL contenant des noms d'alias longs qui peuvent dépasser la longueur maximale prise en charge par le serveur DB2. Selon la plateforme et la version de DB2 que vous utilisez, il est possible que vous ne puissiez pas utiliser de requêtes avec des noms d'alias de plus de 18 caractères. Par exemple, de nombreux objets déployés dans DB2 pour z/OS utilisent des noms de 18 caractères. Reportez-vous à la documentation de référence de DB2 SQL correspondant à votre plateforme et à la version de DB2 et consultez l'administrateur de votre base de données DB2. Nous recommandons que l'administrateur ou le développeur mette à jour les deux fichiers cartouche de configuration de SQL Server Analysis Service qui contiennent la prise en charge du mappage de type de données pour DB2 en modifiant la longueur des identificateurs (« limit-table-identifier-length ») de 29 à 18. Voici les noms et l'emplacement des deux fichiers cartouche qui doivent être mis à jour.

  • C:\Program Files\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE\DataWarehouseDesigner\UIRdmsCartridge\db2v0801.xs

  • C:\Program Files\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE\DataWarehouseDesigner\UIRdmsCartridge\db2v0801.xs

    SQL Server Analysis Services utilise les fichiers de configuration mis à jour pour nommer correctement des objets dans les commandes SQL.

Assistant de migration SQL Server pour DB2

Lorsque vous utilisez Assistant Migration SQL Server pour DB2 (SSMA) pour lire les données CLOB DB2, vous devez définir la connexion DB2 dans SSMA à l’aide de l’option de chaîne de connexion, puis inclure dans la chaîne de connexion l’argument suivant.

  • Utiliser les métadonnées anticipées=True

Cet argument indique au Fournisseur de données d’utiliser des métadonnées anticipées (types de données de paramètre et de colonne) définies au moment de la conception ou des métadonnées tardives définies au moment de l’exécution. Cette propriété facultative accepte les valeurs booléennes. La valeur par défaut est false. Spécifiez true quand vous utilisez SSMA (SQL Server Migration Assistant) pour DB2 afin de lire des données CLOB, y compris les informations de schéma encodées en tant que données CLOB (par exemple, la colonne STATEMENT de la table SYSIBM.SYSTRIGGERS).