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.
Klicken Sie im Dialogfeld Verbindung für die Sicherheitsmethodeauf Einmaliges Anmelden.
Wählen Sie im Dropdownlistenfeld eine Partneranwendung aus.
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.
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.
Klicken Sie im Dialogfeld Verbindung auf Testen. Sie können die Ergebnisse im Dialogfeld Microsoft-Datenverknüpfungen anzeigen.
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.
Identifizieren Sie die zu ändernde Datentypzuordnung. Verwenden Sie MASTER für alle Schritte.
select * from
sys.fn_helpdatatypemap ( 'MSSQLSERVER', '%', '%', '%', '%', '%', 0 )
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 Legen Sie die Datentypzuordnung ab.
exec sp_dropdatatypemapping 189
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
Führen Sie die Abfrage erneut aus, um die neue Datentypzuordnung zu überprüfen.
select * from
select * from sys.fn_helpdatatypemap ( 'MSSQLSERVER', '%', '%', '%', '%', '%', 0 )
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 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
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 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.
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).