Condividi tramite


Problemi relativi ai consumer di dati

In questo argomento vengono fornite informazioni sulla risoluzione dei problemi relativi ai consumer di dati.

SQL Server Integration Services

Enterprise Single Sign-On

Quando si usa Enterprise Single Sign-On con SQL Server Integration Services, potrebbe essere necessario immettere un valore segnaposto di MS$SAME per nome utente e password. Mediante Collegamenti dati è possibile configurare ESSO per l'utilizzo con SSIS.

  1. Nella finestra di dialogo Connessione fare clic su Single Sign-On per il metodo Security.

  2. Selezionare un'applicazione di affiliazione nella casella di riepilogo a discesa.

  3. Nella finestra di dialogo Tutto fare clic su Password e quindi su Modifica valore. Nella finestra di dialogo Modifica valore proprietà immettere MS$SAME per il valore della proprietà e fare clic su OK.

  4. Nella finestra di dialogo Tutti fare clic su ID utente e quindi su Modifica valore. Nella finestra di dialogo Modifica valore proprietà immettere MS$SAME per il valore della proprietà e fare clic su OK.

  5. Nella finestra di dialogo Connessione fare clic su Test. Sarà possibile visualizzare i risultati nella finestra di dialogo Collegamenti dati di Microsoft.

  6. Fare clic su OK per salvare le informazioni di configurazione.

FastLoad per inserire il valore TIMESTAMP

Quando si usa SQL Server destinazione OLE DB di Integration Services con FastLoad per inserire SQL Server valori datetime o datetime2 in una colonna DB2 TIMESTAMP, potrebbe verificarsi questo errore.

LA RAPPRESENTAZIONE STRINGA DI UN VALORE DATETIME NON È UN VALORE DATETIME VALIDO.

Per risolvere questo problema, è necessario impostare la proprietà Origine dati provider di dati Usa metadati iniziali su true.

Use Early Metadata=True

Mapping dei tipi di dati

Quando si utilizzano le procedure guidate di importazione ed esportazione di SQL Server Integration Services da Microsoft SQL Server Management Studio o Business Intelligence Development Studio, è possibile personalizzare le conversioni di dati predefinite modificando i file di mapping XML. I file di mapping XML dell'Importazione/Esportazione guidata sono disponibili nelle seguenti cartelle:

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

Per eseguire correttamente il mapping corretto dei tipi di dati IBM DB2 per i tipi di dati IBM i e decimali ai tipi di dati SQL Server, i file di mapping dei dati devono essere estesi per includere il sinonimo di formato lungo tipo di dati DB2. Aggiungere ad esempio il mapping dei tipi di dati riportato di seguito tra l'origine DB2 INTEGER e SQL Server. Questo mapping è compatibile con SQLOLEDB, SQLNCL, SQLNCLI10 e System.Data.SqlClient.SqlConnection. Sostituisce il valore SourceDataType del formato breve INT con l'INTERO formato lungo.

Il mapping seguente per DB2 INT è compatibile con un'origine DB2 per 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>

Il mapping dei tipi di dati seguente per DB2 INTEGER è compatibile con un'origine DB2 per IBM i 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>

File di mapping dei tipi di dati

Nella tabella seguente vengono descritti i tre file di mapping che è possibile modificare quando si utilizza il provider di dati.

Nome tipo di dati DB2 DB2ToMSSql DB2ToMSSql10 DB2ToSSIS10
TIME DATETIME time DT_DBTIME
timestamp Datetime datetime2 DT_DBTIMESTAMP2
DATE DATETIME DATE DT_DBDATE
CHAR CHAR CHAR DT_STR
CHAR () PER I DATI BIT 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 text text 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 REAL REAL 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 text text DT_TEXT
CLOB () FOR MIXED DATA ntext ntext DT_NTEXT
CLOB () FOR SBCS DATA text text DT_TEXT
CHAR LARGE OBJECT text text DT_TEXT
CHAR LARGE OBJECT () FOR MIXED DATA ntext ntext DT_NTEXT
CHAR LARGE OBJECT () FOR SBCS DATA text text DT_TEXT
CHARACTER LARGE OBJECT text text DT_TEXT
CHARACTER LARGE OBJECT () FOR MIXED DATA ntext ntext DT_NTEXT
CHARACTER LARGE OBJECT () FOR SBCS DATA text text DT_TEXT
130 ntext ntext DT_NTEXT

Dopo la modifica di un file di mapping, è necessario chiudere e riaprire l'Importazione/Esportazione guidata SQL Server o Business Intelligence Development Studio, a seconda dell'ambiente utilizzato.

Per altre informazioni sulla configurazione di SQL Server 2008 Integration Services, vedere l'argomento Importazione ed esportazione dei dati usando l'argomento Importazione ed esportazione guidata SQL Server) in SQL Server documentazione online (https://go.microsoft.com/fwlink/?LinkId=193204).

Personalizzazione dei componenti del flusso di dati

È possibile utilizzare i componenti del flusso di dati di SQL Server Integration Services per eseguire trasformazioni predefinite e personalizzate. Queste ultime sono basate su codice personalizzato fornito dagli sviluppatori.

I file di mapping di SQL Server Integration Services in formato XML devono essere utilizzati con l'Importazione/Esportazione guidata, non con il flusso di dati. SQL Server Integration Services fornisce una classe PipelineBuffer che consente agli sviluppatori di sistemi enterprise di personalizzare il mapping all'interno del flusso di dati. Per altre informazioni sulla personalizzazione dei componenti del flusso di dati tramite SQL Server 2008 Integration Services, vedere l'argomento Uso dei tipi di dati nell'argomento Flusso di dati nella documentazione online di SQL Server (https://go.microsoft.com/fwlink/?LinkId=241523).

Replica SQL Server

Deriva parametri

Per la replica di SQL Server è necessario che Deriva parametri sia impostato su FALSE.

Mapping dei tipi di dati

È possibile che la replica di SQL Server converta erroneamente i dati, in base ai mapping predefiniti, dai tipi di dati di SQL Server a quelli di DB2. Si consiglia di esaminare e verificare i mapping dei tipi di dati di replica utilizzando le seguenti stored procedure di sistema di SQL Server:

  • sp_helpdatatypemap
    
  • sp_getdefaultdatatypemapping
    
  • sp_setdefaultdatatypemapping
    

    Per altre informazioni, vedere l'argomento Stored procedure di sistema (Transact-SQL) in SQL Server Documentazione online (http://go.microsoft.com/fwlink/?LinkId=241524).

    Problema di mapping di DATETIME2 di SQL Server a DBTYPE_TIMESTAMP

    La replica di SQL Server 2008 in DB2 per z/OS può generare un errore con SQLCODE -188 (la rappresentazione stringa di un valore datetime non è un valore datetime valido). Questo problema si verifica quando la replica è configurata per il mapping di DATETIME2 a DB2 VARCHAR(27) e utilizza i comandi dell'articolo di sottoscrizione con valori di dati letterali stringa.

    Soluzione al problema con istruzioni dettagliate

    Riconfigurare la replica di SQL Server 2008 per il mapping di DATETIME2 a DB2 TIMESTAMP e riconfigurare i comandi dell'articolo di sottoscrizione con i parametri. In questo modo, DATETIME2 viene convertito dal provider di dati nel formato di una struttura DB2 TIMESTAMP supportata dal server di database IBM DB2.

  1. Identificare il mapping dei tipi di dati da modificare. Utilizzare MASTER per tutti i passaggi.

    selezionare * da

    sys.fn_helpdatatypemap
    (
       'MSSQLSERVER',
        '%',
        '%',
        '%',
        '%',
        '%',
        0
    )
    
  2. Where destination_dbms = 'DB2' and source_type = 'datetime2' Nei risultati deve essere indicato il nuovo mapping dei tipi di dati. Nella tabella seguente è illustrato il riquadro dei risultati relativo all'esempio, dove il mapping_id è 494.

    mapping_id source_dbms source_type destination_dbms destination_type destination_length
    189 MSSQLSERVER datetime2 DB2 VARCHAR 27
  3. Rimuovere il mapping dei tipi di dati.

    exec sp_dropdatatypemapping 189
    
  4. Aggiungere il mapping dei tipi di dati.

    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. Eseguire nuovamente la query per verificare il nuovo mapping dei tipi di dati.

    selezionare * da

    select * from sys.fn_helpdatatypemap
    (
       'MSSQLSERVER',
        '%',
        '%',
        '%',
        '%',
        '%',
        0
    )
    
  6. Where destination_dbms = 'DB2' and source_type = 'datetime2'

    Nei risultati deve essere indicato il nuovo mapping dei tipi di dati. Nella tabella seguente è illustrato il riquadro dei risultati relativo all'esempio, dove il mapping_id è 494.

    mapping_id source_dbms source_type destination_dbms destination_type destination_length
    494 MSSQLSERVER datetime2 DB2 timestamp NULL
  7. Identificare l'articolo di sottoscrizione della replica da riconfigurare. Utilizzare l'istruzione USE Transact-SQL per passare dal database master al database da cui viene eseguita la replica.

    USE [Test]

    select name, status from sysarticles
    
  8. Nei risultati deve essere indicato il nome dell'articolo da modificare. In questo esempio, i risultati riportati nella tabella seguente indicano il nome DB2TS01.

    name status
    DB2TS01 25
  9. Se il valore dello stato è 1 o 9, l'articolo viene configurato per la formattazione con valore letterale stringa.

    Se il valore dello stato è 17 o 25, l'articolo viene configurato per la formattazione con parametri.

  10. Configurare l'articolo di sottoscrizione della replica per comandi con parametri.

    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;
    

    Per altre informazioni, vedere Concetti relativi alle stored procedure del sistema di replica (https://go.microsoft.com/fwlink/?LinkId=241525) nella documentazione online di SQL Server.

L'operazione INSERT di replica ha esito negativo e viene troncato l'errore 8152: i dati stringa o binari vengono troncati

replica di SQL Server'operazione INSERT potrebbe non riuscire con SQL Server Errore 8152 (i dati stringa o binari verrebbero troncati). Questo problema può verificarsi quando (1) il provider di dati non è configurato per l'uso dei metadati iniziali e (2) La replica non è configurata per l'uso di istruzioni INSERT con parametri.

Riconfigurare la connessione al provider di dati per specificare "Use Early Metadata=true" nella definizione dell'origine dati del sottoscrittore replica di SQL Server.

Per altre informazioni, vedere Configurare i provider di dati per i collegamenti dati DB2 (DB2) Tutte le proprietà nel provider OLE DB per DB2 documentazione.

Riconfigurare replica di SQL Server articolo della sottoscrizione per includere l'opzione "24" ("Include il nome della colonna nelle istruzioni INSERT e usa istruzioni con parametri).").

Per altre informazioni, vedere replica di SQL Server sp_addarticle (Transact-SQL) nella documentazione di SQL Server.

SQL Server Analysis Services

Quando si progettano cubi da utilizzare con SQL Server Analysis Services, gli strumenti generano comandi SQL contenenti nomi alias lunghi che possono superare la lunghezza massima supportata dal server DB2. In base alla piattaforma e alla versione di DB2 utilizzate, potrebbe non essere consentito l'utilizzo di query con nomi alias che superano i 18 caratteri. Ad esempio, molti oggetti distribuiti in DB2 per z/OS utilizzano nomi di 18 caratteri. Vedere la sezione di riferimento di DB2 SQL per la piattaforma e la versione di DB2 utilizzate e consultare l'amministratore del database DB2. Si consiglia che l'amministratore o l'aggiornamento dello sviluppatore aggiornino i due file cartridge di configurazione di SQL Server Analysis Services contenenti il supporto del mapping dei tipi di dati per DB2 modificando la lunghezza dell'identificatore (limite di lunghezza dell'identificatore di tabella) da 29 a 18. Di seguito sono riportati i nomi e il percorso dei due file cartridge che devono essere aggiornati.

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

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

    SQL Server Analysis Services utilizza i file di configurazione aggiornati per assegnare un nome corretto agli oggetti nei comandi SQL.

SQL Server Migration Assistant per DB2

Quando si usa SQL Server Migration Assistant per DB2 (SSMA) per leggere i dati CLOB DB2, è necessario definire la connessione DB2 all'interno di SSMA usando l'opzione stringa di connessione e quindi includere nella stringa di connessione l'argomento seguente.

  • Usare i metadati iniziali=True

Questo argomento indica al provider di dati di usare metadati iniziali (tipi di dati di parametri e colonne) definiti in fase di progettazione o metadati in ritardo definiti in fase di esecuzione. Questa proprietà opzionale accetta un valore booleano. Il valore predefinito è false. Specificare true quando si usa SQL Server Migration Assistant (SSMA) per DB2 per leggere i dati CLOB, incluse le informazioni sullo schema codificate come dati CLOB ,ad esempio colonna STATEMENT di SYSIBM. Tabella SYSTRIGGERS.