Freigeben über


Datenconsumerprobleme

Dieses Thema stellt Informationen zur Behandlung von Datenconsumerproblemen zur Verfügung.

SQL Server Integration Services

Enterprise Single Sign-On

Wenn Sie Enterprise Single Sign-On mit SQL Server Integration Services verwenden, müssen Sie möglicherweise den Platzhalterwert für MS$SAME Benutzername und Kennwort eingeben. Mithilfe von Datenverknüpfungen können Sie ESSO für die Verwendung mit SSIS konfigurieren.

  1. Klicken Sie im Dialogfeld Verbindung für die Sicherheitsmethodeauf Einmaliges Anmelden.

  2. Wählen Sie im Dropdownlistenfeld eine Partneranwendung aus.

  3. Klicken Sie im Dialogfeld Alle auf Kennwort und dann auf Wert bearbeiten. Geben Sie im Dialogfeld Eigenschaftswert bearbeitenden Wert MS$SAME als Eigenschaftswert ein, und klicken Sie auf OK.

  4. Klicken Sie im Dialogfeld Alle auf Benutzer-ID und dann auf Wert bearbeiten. Geben Sie im Dialogfeld Eigenschaftswert bearbeitenden Wert MS$SAME als Eigenschaftswert ein, und klicken Sie auf OK.

  5. Klicken Sie im Dialogfeld Verbindung auf Testen. Sie können die Ergebnisse im Dialogfeld Microsoft-Datenverknüpfungen anzeigen.

  6. Klicken Sie auf OK , um die Konfigurationsinformationen zu speichern.

FastLoad zum Einfügen des TIMESTAMP-Werts

Wenn Sie SQL Server Integration Services OLE DB-Ziel mit FastLoad verwenden, um SQL Server datetime- oder datetime2-Werte in eine DB2 TIMESTAMP-Spalte einzufügen, tritt dieser Fehler möglicherweise auf.

DIE ZEICHENFOLGEDARSTELLUNG EINES DATETIME-WERTS IST KEIN GÜLTIGER DATETIME-WERT

Um dieses Problem zu umgehen, sollten Sie die Datenanbieter-Datenquelleneigenschaft Frühe Metadaten verwenden auf true festlegen.

Use Early Metadata=True

Datentypzuordnung

Bei Verwendung der Import- und Export-Assistenten von SQL Server Integration Services aus Microsoft SQL Server Management Studio oder Business Intelligence Design Studio können Sie die standardmäßigen Datenkonvertierungen anpassen, indem Sie die XML-Zuordnungsdateien bearbeiten. Die XML-Zuordnungsdateien der Import- und Export-Assistenten befinden sich in folgendem Ordner.

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

Zum ordnungsgemäßen Zuordnen von IBM DB2 für IBM i-Zeichen- und Dezimaldatentypen zu SQL Server Datentypen sollten die Datenzuordnungsdateien erweitert werden, um das Db2-Datentyp-Synonym für lange Form einzuschließen. Fügen Sie z. B. die folgende Datentypzuordnung zwischen der DB2 INTEGER-Quelle und SQL Server hinzu. Diese Zuordnung ist mit SQLOLEDB, SQLNCL, SQLNCLI10 und System.Data.SqlClient.SqlConnection kompatibel. Es ersetzt den SourceDataType-Kurzformwert INT durch die lange Form INTEGER.

Die folgenden Zuordnung für DB2 INT ist mit einer DB2 für z/OS V9-Quelle kompatibel.

<!-- 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>

Die folgende Datentypzuordnung für DB2 INTEGER ist mit einer DB2 for IBM i V6R1-Quelle kompatibel.

<!-- 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>

Datentyp-Zuordnungsdateien

Die folgende Tabelle beschreibt die drei Zuordnungsdateien, die Sie bearbeiten können, wenn Sie den Datenanbieter verwenden.

DB2-Datentypname DB2ToMSSql DB2ToMSSql10 DB2ToSSIS10
TIME 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 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
GLEITKOMMAZAHL GLEITKOMMAZAHL GLEITKOMMAZAHL DT_R8
Double GLEITKOMMAZAHL GLEITKOMMAZAHL DT_R8
DOUBLE PRECISION GLEITKOMMAZAHL GLEITKOMMAZAHL 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

Nachdem Sie eine Zuordnungsdatei bearbeitet haben, müssen Sie den Import- und Export-Assistenten von SQL Server oder Business Intelligence Development Studio abhängig von der Umgebung, in der Sie arbeiten, schließen und dann erneut öffnen.

Weitere Informationen zum Konfigurieren SQL Server 2008 Integration Services finden Sie im Thema Importieren und Exportieren von Daten mithilfe des SQL Server Import/Export-Assistenten) in SQL Server-Onlinedokumentation (https://go.microsoft.com/fwlink/?LinkId=193204).

Anpassen von Datenflusskomponenten

Sie können die Datenflusskomponenten von SQL Server Integration Services zum Ausführen von Standard- und angepassten Transformationen verwenden. Die angepassten Transformationen basieren auf von Entwicklern bereitgestelltem, benutzerdefiniertem Code.

Die Zuordnungsdateien von SQL Server Integration Services im XML-Format sind für die Verwendung mit dem Import- und Export-Assistenten vorgesehen. Diese Dateien sind nicht für die Verwendung mit dem Datenfluss geeignet. SQL Server Integration Services stellt eine Pipelinepufferklasse zur Verfügung, damit Unternehmensentwickler die Datenzuordnung im Datenfluss anpassen können. Weitere Informationen zum Anpassen von Datenflusskomponenten mithilfe SQL Server 2008 Integration Services finden Sie im Thema Arbeiten mit Datentypen im Datenfluss in SQL Server-Onlinedokumentation (https://go.microsoft.com/fwlink/?LinkId=241523).

SQL Server Replikation

Parameter ableiten

Die SQL Server-Replikation erfordert, dass Parameter ableiten auf FALSCH festgelegt ist.

Datentypzuordnung

Auf der Grundlage der Standardzuordnungen von SQL Server- zu DB2-Datentypen kann es vorkommen, dass die SQL Server-Replikation Daten ggf. nicht ordnungsgemäß konvertiert. Es wird empfohlen, dass Sie die Replikationsdatentyp-Zuordnungen unter Verwendung der folgenden gespeicherten SQL Server-Systemprozeduren überarbeiten und überprüfen.

  • sp_helpdatatypemap
    
  • sp_getdefaultdatatypemapping
    
  • sp_setdefaultdatatypemapping
    

    Weitere Informationen finden Sie unter Gespeicherte Systemprozeduren (Transact-SQL) in der SQL Server-Onlinedokumentation (http://go.microsoft.com/fwlink/?LinkId=241524).

    Problem beim Zuordnen des SQL Server-Formats DATETIME2 zu DBTYPE_TIMESTAMP

    Fehler der SQL Server 2008-Replikation in DB2 für z/OS mit SQLCODE -188 (die Zeichenfolgedarstellung eines datetime-Werts ist kein gültiger datetime-Wert). Dieser Fehler tritt auf, wenn die Replikation für die Zuordnung von DATETIME2 zu DB2 VARCHAR(27) konfiguriert ist und Abonnementartikelbefehle mit literalen Zeichenfolge-Datenwerten verwendet.

    Lösung des Problems mit schrittweisen Anweisungen

    Konfigurieren Sie die SQL Server 2008-Replikation so neu, dass DATETIME2 dem Typ DB2 TIMESTAMP und Abonnementartikelbefehle Parametern zugeordnet werden. Auf diese Weise kann der Datenanbieter den Typ DATETIME2 als DB2 TIMESTAMP-Struktur formatieren, die vom IBM DB2-Datenbankserver unterstützt wird.

  1. Identifizieren Sie die zu ändernde Datentypzuordnung. Verwenden Sie MASTER für alle Schritte.

    select * from

    sys.fn_helpdatatypemap
    (
       'MSSQLSERVER',
        '%',
        '%',
        '%',
        '%',
        '%',
        0
    )
    
  2. Dabei ist destination_dbms = 'DB2' und source_type = 'datetime2'. Die Ergebnisse sollten die zu ändernde mapping_id angeben. Die folgende Tabelle zeigt den Ergebnisbereich für dieses Beispiel. Dabei besitzt mapping_id den Wert 189.

    mapping_id source_dbms source_type destination_dbms destination_type destination_length
    189 MSSQLSERVER datetime2 DB2 VARCHAR 27
  3. Legen Sie die Datentypzuordnung ab.

    exec sp_dropdatatypemapping 189
    
  4. Fügen Sie die Datentypzuordnung hinzu.

    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. Führen Sie die Abfrage erneut aus, um die neue Datentypzuordnung zu überprüfen.

    select * from

    select * from sys.fn_helpdatatypemap
    (
       'MSSQLSERVER',
        '%',
        '%',
        '%',
        '%',
        '%',
        0
    )
    
  6. Dabei ist destination_dbms = 'DB2' und source_type = 'datetime2'.

    Die Ergebnisse sollten die zu ändernde mapping_id angeben. Die folgende Tabelle zeigt den Ergebnisbereich für dieses Beispiel. Dabei besitzt mapping_id den Wert 189.

    mapping_id source_dbms source_type destination_dbms destination_type destination_length
    494 MSSQLSERVER datetime2 DB2 timestamp NULL
  7. Identifizieren den neu zu konfigurierenden Replikationsabonnementartikel. Verwenden Sie die Transact-SQL-Anweisung USE, um von der Masterdatenbank zu der Datenbank zu wechseln, aus der die Replikation erfolgt.

    USE [Test]

    select name, status from sysarticles
    
  8. Die Ergebnisse sollten den Namen des zu ändernden Artikels angeben. Die folgende Tabelle zeigt die Ergebnisse. Dabei lautet der Name DB2TS01.

    name status
    DB2TS01 25
  9. Wenn der Statuswert 1 oder 9 ist, ist der Artikel für literale Zeichenfolgeformatierung konfiguriert.

    Wenn der Statuswert 17 oder 25 ist, ist der Artikel für parametrisierte Formatierung konfiguriert.

  10. Konfigurieren Sie den Replikationsabonnementartikel für parametrisierte Befehle.

    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;
    

    Weitere Informationen finden Sie unter Konzepte für gespeicherte Replikationssystemprozeduren (https://go.microsoft.com/fwlink/?LinkId=241525) in SQL Server Onlinedokumentation.

Gescheiterter INSERT-Replikationsvorgang mit Fehler 8152: Zeichenfolgen- oder Binärdaten würden abgeschnitten

Der SQL Server-Replikation INSERT-Vorgang kann mit SQL Server Fehler 8152 fehlschlagen (Zeichenfolgen- oder Binärdaten würden abgeschnitten). Dies kann auftreten, wenn (1) der Datenanbieter nicht für die Verwendung von frühen Metadaten konfiguriert ist und (2) die Replikation nicht für die Verwendung parametrisierter INSERT-Anweisungen konfiguriert ist.

Konfigurieren Sie die Verbindung zum Datenanbieter neu, um "Use Early Metadata=true" in der SQL Server-Replikation-Datenquellendefinition des Abonnenten anzugeben.

Weitere Informationen finden Sie unter Konfigurieren von Datenanbietern für DB2-Datenlinks (DB2) Alle Eigenschaften im OLE DB-Anbieter für DB2.

Konfigurieren Sie SQL Server-Replikation Abonnementartikel neu, um die Option "24" einzuschließen ("Enthält den Spaltennamen in INSERT-Anweisungen und verwendet parametrisierte Anweisungen.").

Weitere Informationen finden Sie unter SQL Server-Replikation sp_addarticle (Transact-SQL) in SQL Server Dokumentation.

SQL Server Analysis Services

Wenn Sie Cubes für die Verwendung mit SQL Server Analysis Services entwerfen, generieren die Tools SQL-Befehle, die lange Aliasnamen enthalten, die die vom DB2-Server unterstützte maximale Länge überschreiten können. Je nach verwendeter DB2-Plattform und -Version können Sie ggf. keine Abfragen mit Aliasnamen verwenden, die länger als 18 Zeichen sind. Beispielsweise verwenden viele Objekte, die in DB2 für z/OS bereitgestellt werden, Namen mit einer Länge von 18 Zeichen. Lesen Sie die DB2 SQL-Referenz für Ihre DB2-Plattform und -Version, und wenden Sie sich an ihren DB2-Datenbankadministrator. Es wird empfohlen, dass der Administrator oder Entwickler die zwei Dateien der SQL Server Analysis Service-Konfigurationscartridge aktualisiert, die die Datentypzuordnungs-Unterstützung für DB2 enthalten, indem er die Bezeichnerlänge (Begrenzungstabellen-Bezeichnerlänge) von 29 in 18 ändert. Im Folgenden sind die Namen und der Speicherort der zwei zu aktualisierenden Cartridgedateien aufgeführt.

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

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

    SQL Server Analysis Services verwendet die aktualisierten Konfigurationsdateien, um Objekte in SQL-Befehlen ordnungsgemäß zu benennen.

SQL Server Migration Assistant for DB2

Wenn Sie SQL Server Migration Assistant für DB2 (SSMA) zum Lesen von DB2-CLOB-Daten verwenden, sollten Sie die DB2-Verbindung in SSMA mithilfe der Option Verbindungszeichenfolge definieren und dann das folgende Argument in die Verbindungszeichenfolge einschließen.

  • Verwenden von frühen Metadaten=True

Dieses Argument weist den Datenanbieter an, zur Entwurfszeit definierte frühe Metadaten (Parameter- und Spaltendatentypen) oder späte Metadaten zu verwenden, die zur Laufzeit definiert wurden. Diese optionale Eigenschaft akzeptiert einen booleschen Wert. Der Standardwert ist „FALSE“. Geben Sie TRUE an, wenn Sie SQL Server Migration Assistant (SSMA) für DB2 zum Lesen von CLOB-Daten verwenden, einschließlich Schemainformationen, die als CLOB-Daten codiert sind (z. B. die STATEMENT-Spalte SYSIBM.SYSTRIGGERS-Tabelle).