Condividi tramite


Problemi relativi ai consumatori di dati

In questo argomento vengono fornite informazioni per risolvere i problemi relativi agli utenti consumer di dati.

SQL Server Integration Services

Sistema di Single Sign-On aziendale

Quando si usa Enterprise Single Sign-On con SQL Server Integration Services, potrebbe essere necessario immettere il valore segnaposto MS$SAME per il nome utente e la password. Usando i collegamenti dati, è possibile configurare ESSO per l'uso con SSIS.

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

  2. Selezionare un'applicazione affiliata dalla casella di riepilogo a discesa.

  3. Nella finestra di dialogo Tutti fare clic su Password e quindi su Modifica valore. Nella finestra di dialogo Modifica valore proprietà immettere MS$SAME per Valore 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 Valore proprietà e fare clic su OK.

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

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

FastLoad per inserire il valore TIMESTAMP

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

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

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

Use Early Metadata=True

Mapping dei tipi di dati

Quando si usano le procedure guidate importazione/esportazione di SQL Server Integration Services, da Microsoft SQL Server Management Studio o Business Intelligence Design Studio, è possibile personalizzare le conversioni di dati predefinite modificando i file di mapping XML. I file di mapping XML dell'Importazione/Esportazione guidata si trovano nella cartella seguente.

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

Per eseguire correttamente il mapping dei tipi di dati character e decimal di IBM DB2 per IBM i ai tipi di dati di SQL Server, è necessario estendere i file di mapping dei dati per includere il sinonimo esteso del tipo di dati DB2. Ad esempio, aggiungere il mapping del tipo di dati seguente tra l'origine DB2 INTEGER e SQL Server. Questo mapping è compatibile con SQLOLEDB, SQLNCL, SQLNCLI10 e System.Data.SqlClient.SqlConnection. Sostituisce il valore SourceDataType in formato breve INT con il formato long INTEGER.

Il seguente mapping per DB2 INT è compatibile con una sorgente 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 seguente mapping dei tipi di dati 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 usa il provider di dati.

Nome tipo di dati DB2 DB2ToMSSql DB2ToMSSql10 DB2ToSSIS10
TEMPO DATETIME Tempo DT_DBTIME
TIMESTAMP datetime datetime2 DT_DBTIMESTAMP2
DATTERO DATETIME DATTERO DT_DBDATE
CHAR CHAR CHAR DT_STR
CHAR () PER DATI DI BIT BINARY BINARY DT_BYTES
CHAR () PER DATI MISTI NCHAR NCHAR DT_WSTR
CHAR () PER DATI SBCS CHAR CHAR DT_STR
CHARACTER CHAR CHAR DT_STR
CARATTERE () PER DATI BINARI BINARY BINARY DT_BYTES
CARATTERE () PER DATI MISTI NCHAR NCHAR DT_WSTR
CARATTERE () PER DATI SBCS CHAR CHAR DT_STR
CARATTERE NAZIONALE NCHAR NCHAR DT_WSTR
VARCHAR VARCHAR VARCHAR DT_STR
VARCHAR () PER DATI DI BIT VARBINARY VARBINARY DT_BYTES
VARCHAR () PER DATI MISTI NVARCHAR NVARCHAR DT_WSTR
VARCHAR () PER I DATI SBCS VARCHAR VARCHAR DT_STR
CARATTERE VARIABILE VARCHAR VARCHAR DT_STR
CARATTERE VARIABILE () PER I DATI DI BIT VARBINARY VARBINARY DT_BYTES
CARATTERE VARIABILE () PER DATI MISTI NVARCHAR NVARCHAR DT_WSTR
CARATTERE VARIABILE () PER I DATI SBCS VARCHAR VARCHAR DT_STR
CARATTERE NAZIONALE VARIABILE NVARCHAR NVARCHAR DT_WSTR
VARCHAR LONG PER DATI BINARI image image DT_IMAGE
VARCHAR LUNGO text text DT_TEXT
GRAFICA NCHAR NCHAR DT_WSTR
VARGRAPHIC NVARCHAR NVARCHAR DT_WSTR
GRAFICO VARIABILE NVARCHAR NVARCHAR DT_WSTR
SMALLINT SMALLINT SMALLINT DT_I2
INT INT INT DT_14
INTEGER INT INT DT_14
BIGINT BIGINT BIGINT DT_18
DECIMALE NUMERICO NUMERICO DT_NUMERIC
NUMERICO NUMERICO NUMERICO DT_NUMERIC
REALE REALE REALE DT_R4
FLOAT FLOAT FLOAT DT_R8
DOPPIO FLOAT FLOAT DT_R8
PRECISIONE DOPPIA FLOAT FLOAT DT_R8
BLOB image image DT_BYTES
Oggetto Binario di Grandi Dimensioni image image DT_BYTES
CLOB text text DT_TEXT
CLOB () PER DATI MISTI ntext ntext DT_NTEXT
CLOB () PER I DATI SBCS text text DT_TEXT
OGGETTO DI GRANDI DIMENSIONI CHAR text text DT_TEXT
CHAR LARGE OBJECT () PER DATI MISTI ntext ntext DT_NTEXT
CLOB PER DATI SBCS text text DT_TEXT
CARATTERE GRANDE OGGETTO text text DT_TEXT
OGGETTO CARATTERE DI GRANDI DIMENSIONI () PER DATI MISTI ntext ntext DT_NTEXT
OGGETTO GRANDE CARATTERE () PER I DATI SBCS text text DT_TEXT
130 ntext ntext DT_NTEXT

Dopo aver modificato un file di mapping, è necessario chiudere e riaprire l'Importazione/Esportazione guidata SQL Server o Business Intelligence Development Studio, a seconda dell'ambiente in cui si sta lavorando.

Per ulteriori informazioni sulla configurazione di SQL Server 2008 Integration Services, consulti l'argomento Importazione ed esportazione dei dati tramite l'Utilità Importazione/Esportazione di SQL Server nella documentazione online di SQL Server (https://go.microsoft.com/fwlink/?LinkId=193204).

Personalizzazione dei componenti del flusso di dati

È possibile usare i componenti flusso di dati di SQL Server Integration Services per eseguire trasformazioni predefinite e personalizzate. Le trasformazioni personalizzate sono basate sul codice personalizzato fornito dallo sviluppatore.

I file di mapping di SQL Server Integration Services in formato XML vengono usati con l'Importazione/Esportazione guidata. Questi file non vengono usati con il flusso di dati. SQL Server Integration Services offre una classe di buffer della pipeline per consentire agli sviluppatori aziendali di personalizzare il mapping dei dati 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).

Replicazione di SQL Server

Derivare parametri

La replica di SQL Server richiede che Derive Parameter sia impostato su FALSE.

Mapping dei tipi di dati

La replica di SQL Server può convertire i dati in modo non corretto, in base ai mapping predefiniti da SQL Server a tipi di dati DB2. È consigliabile esaminare e rivedere le mappature dei tipi di dati di replica utilizzando le seguenti stored procedure di sistema di SQL Server.

  • sp_helpdatatypemap
    
  • sp_getdefaultdatatypemapping
    
  • sp_setdefaultdatatypemapping
    

    Per ulteriori informazioni, consultare l'argomento Stored procedure di sistema (Transact-SQL) nella documentazione online di SQL Server (http://go.microsoft.com/fwlink/?LinkId=241524).

    Problema nel mapping di SQL Server DATETIME2 a DBTYPE_TIMESTAMP

    La replica di SQL Server 2008 in DB2 per z/OS potrebbe non riuscire con SQLCODE -188 (la rappresentazione di stringa di un valore datetime non è un valore datetime valido). Ciò si verifica quando la replica è configurata per mappare DATETIME2 a DB2 VARCHAR(27) e utilizza i comandi degli articoli della sottoscrizione con valori stringa letterali.

    Soluzione al problema con istruzioni dettagliate

    Riconfigurare la replica di SQL Server 2008 per mappare DATETIME2 al TIMESTAMP di DB2 e i comandi degli articoli di sottoscrizione con parametri. Ciò consente al provider di dati di formattare il DATETIME2 come struttura DB2 TIMESTAMP supportata dal server di database IBM DB2.

  1. Identificare la mappatura dei tipi di dati da modificare. Usare MASTER per tutti i passaggi.

    selezionare * da

    sys.fn_helpdatatypemap
    (
       'MSSQLSERVER',
        '%',
        '%',
        '%',
        '%',
        '%',
        0
    )
    
  2. Dove destination_dbms = 'DB2' e source_type = 'datetime2'I risultati devono indicare il mapping_id da modificare. Nella tabella seguente viene illustrato il riquadro dei risultati per questo esempio in cui il mapping_id è 189.

    mapping_id source_dbms tipo_sorgente destinazione_dbms destination_type destination_length
    189 MSSQLSERVER datetime2 DB2 VARCHAR 27
  3. Eliminare il mapping dei tipi di dati.

    exec sp_dropdatatypemapping 189
    
  4. Aggiungere la mappatura del tipo 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 di nuovo la query per verificare il nuovo mapping del tipo di dati.

    select * from

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

    I risultati devono indicare il mapping_id da modificare. Nella tabella seguente viene illustrato il riquadro dei risultati per questo esempio in cui il mapping_id è 189.

    mapping_id source_dbms tipo_sorgente destino_dbms destination_type lunghezza_destinazione
    494 MSSQLSERVER datetime2 DB2 TIMESTAMP NULLO
  7. Identificare l'articolo relativo alla sottoscrizione di replica da riconfigurare. Utilizzare l'istruzione USE Transact-SQL per passare dal database master al database da cui si esegue la replica.

    USE [Test]

    select name, status from sysarticles
    
  8. I risultati devono visualizzare il nome dell'articolo da modificare. In questo esempio la tabella seguente mostra i risultati in cui il nome è DB2TS01.

    nome stato
    DB2TS01 25
  9. Se il valore di stato è 1 o 9, l'articolo viene configurato per la formattazione letterale di stringa.

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

  10. Configurare l'articolo relativo alla sottoscrizione di replica per i 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;
    

    Nella documentazione online di SQL Server, vedere i concetti relativi alle stored procedure di sistema di replica (https://go.microsoft.com/fwlink/?LinkId=241525) per ulteriori informazioni.

L'operazione INSERT di replica fallisce con Errore 8152: i dati stringa o binari verrebbero troncati

L'operazione INSERT di replica di SQL Server potrebbe non riuscire con l'errore di SQL Server 8152 (i dati stringa o binari verrebbero troncati). Ciò 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 di replica di SQL Server.

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

Riconfigurare l'articolo relativo alla sottoscrizione di replica di SQL Server 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 usare con SQL Server Analysis Services, gli strumenti generano comandi SQL contenenti nomi alias lunghi che possono superare la lunghezza massima supportata dal server DB2. A seconda della piattaforma DB2 e della versione usata, potrebbe non essere possibile usare query con nomi di alias superiori a 18 caratteri. Ad esempio, molti oggetti distribuiti in DB2 per z/OS usano nomi di 18 caratteri. Consultare il riferimento SQL di DB2 per la propria piattaforma e versione DB2 e verificare con l'amministratore del database DB2. È consigliabile che l'amministratore o lo sviluppatore aggiorni i due file di configurazione di SQL Server Analysis Service che contengono il supporto per il mapping dei tipi di dati per DB2 modificando la lunghezza dell'identificatore (limit-table-identifier-length) da 29 a 18. Di seguito sono riportati i nomi e la posizione dei due file di munizioni che devono essere aggiornati.

  • C:\Programmi\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 usa i file di configurazione aggiornati per denominare correttamente gli 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 della 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 tardivi definiti in fase di esecuzione. Questa proprietà facoltativa accetta un valore booleano. Il valore predefinito è false. Specificare "true" quando si utilizza SQL Server Migration Assistant (SSMA) per DB2 per leggere i dati CLOB, incluse le informazioni sullo schema codificate come dati CLOB; ad esempio, la colonna STATEMENT della tabella SYSIBM.SYSTRIGGERS.