Verwenden von Datentypen im Datenfluss

Gilt für:SQL Server SSIS Integration Runtime in Azure Data Factory

Wenn Sie eine benutzerdefinierte Datenflusskomponente in Integration Services entwickeln, arbeiten Sie ständig mit Datentypen, kopieren Daten in und aus Datenflusspuffern und transformieren Werte. Mithilfe der Informationen in diesem Artikel können Sie die geeigneten Integration Services-Datentypen und die richtigen Verwendungsmethoden auswählen.

Einfügen von Daten in den Datenfluss

Die PipelineBuffer-Klasse bietet eine Reihe von Set-Methoden für das Kopieren von Daten in Pufferspalten sowie eine weitere Reihe von Get-Methoden für das Abrufen von Daten aus Pufferspalten. In den folgenden Tabellen sehen Sie, welche Methode Sie für welchen Integration Services-Datentyp verwenden können.

Festlegen von Methoden zur Verwendung mit Datentypen

In der folgenden Tabelle sind die Datentypen in der ersten Spalte und dazu die entsprechenden Set- und Get-Methoden aufgelistet.

Datentyp Set-Methode Get-Methode
DT_BOOL SetBoolean GetBoolean
DT_BYTES SetBytes GetBytes
DT_CY SetDecimal GetDecimal
DT_DATE SetDateTime GetDateTime
DT_DBDATE SetDate GetDate
DT_DBTIME SetTime GetTime
DT_DBTIME2 SetTime GetTime
DT_DBTIMESTAMP SetDateTime GetDateTime
DT_DBTIMESTAMP2 SetDateTime GetDateTime
DT_DBTIMESTAMPOFFSET SetDateTimeOffset GetDateTimeOffset
DT_DECIMAL SetDecimal GetDecimal
DT_FILETIME SetDateTime GetDateTime
DT_GUID SetGuid GetGuid
DT_I1 SetSByte GetSByte
DT_I2 SetInt16 GetInt16
DT_I4 SetInt32 GetInt32
DT_I8 SetInt64 GetInt64
DT_IMAGE AddBlobData oder AddBlobData GetBlobData
DT_NTEXT AddBlobData oder AddBlobData GetBlobData
DT_NULL SetNull Es gibt keine Get-Methode, die auf diesen Datentyp anwendbar ist.
DT_NUMERIC SetDecimal GetDecimal
DT_R4 SetSingle GetSingle
DT_R8 SetDouble GetDouble
DT_STR SetString GetString
DT_TEXT AddBlobData oder AddBlobData GetBlobData
DT_UI1 SetByte GetByte
DT_UI2 SetUInt16 GetUInt16
DT_UI4 SetUInt32 GetUInt32
DT_UI8 SetUInt64 GetUInt64
DT_WSTR SetString GetString

Datentypen zur Verwendung mit der Set-Methode

Set-Methode Datentyp
AddBlobData oder AddBlobData DT_IMAGE, DT_NTEXToder DT_TEXT
SetBoolean DT_BOOL
SetByte DT_UI1
SetBytes DT_BYTES
SetDate DT_DBDATE
SetDateTime DT_DATE, DT_DBTIMESTAMP, DT_DBTIMESTAMP2 oder DT_FILETIME
SetDateTimeOffset DT_DBTIMESTAMPOFFSET
SetDecimal DT_CY, DT_DECIMALoder DT_NUMERIC
SetDouble DT_R8
SetGuid DT_GUID
SetInt16 DT_I2
SetInt32 DT_I4
SetInt64 DT_I8
SetNull DT_NULL
SetSByte DT_I1
SetSingle DT_R4
SetString DT_STR oder DT_WSTR
SetTime DT_DBTIME oder DT_DBTIME2
SetUInt16 DT_UI2
SetUInt32 DT_UI4
SetUInt64 DT_UI8

Zuordnen von Datentypen im Datenfluss

Wenn Daten durch Transformationen von der Quelle zum Ziel verschoben werden, muss eine Datenflusskomponente unter Umständen Datentypen zwischen den SQL Server Integration Services-Typen, die in der DataType-Enumeration definiert sind und den verwalteten Datentypen von Microsoft .NET Framework konvertieren, die im System-Namespace definiert sind. Darüber hinaus muss eine Komponente gegebenenfalls einen Integration Services-Datentyp in einen anderen konvertieren, bevor dieser Typ in einen verwalteten Typ konvertiert werden kann.

Hinweis

Die Zuordnungsdateien im XML-Format, die standardmäßig unter „C:\Programme\Microsoft SQL Server\130\DTS\MappingFiles“ installiert werden, hängen nicht mit der in diesem Thema erläuterten Datentypzuordnung zusammen. Diese Dateien ordnen Datentypen aus einer Datenbankversion oder einem System zu (z. B. von SQL Server zu Oracle) und werden nur vom SQL Server-Import/Export-Assistenten verwendet. Weitere Informationen zu diesen Zuordnungsdateien finden Sie unter SQL Server-Import/Export-Assistent.

Zuordnungen zwischen Integration Services und verwalteten Datentypen

Die Methoden BufferTypeToDataRecordType und DataRecordTypeToBufferType ordnen Integration Services-Datentypen den verwalteten Datentypen zu.

Achtung

Entwickler sollten bei der Verwendung der PipelineComponent-Klasse sorgfältig vorgehen und ggf. eigene Codedatentyp-Zuordnungsmethoden verwenden, die für die speziellen Anforderungen ihrer benutzerdefinierten Komponenten besser geeignet sind. Die vorhandenen Methoden berücksichtigen keine numerische Genauigkeit oder Dezimalstellen oder andere Eigenschaften, die eng mit dem Datentyp verbunden sind. Microsoft kann diese Methoden ändern oder entfernen oder die durchgeführten Zuordnungen in einer künftigen Version von Integration Services ändern.

In der folgenden Tabelle ist aufgeführt, wie die Methoden BufferTypeToDataRecordType und DataRecordTypeToBufferType verschiedene Integration Services-Datentypen verwalteten Datentypen zuordnen.

Integration Services-Datentyp Entsprechender verwalteter Datentyp
DT_WSTR System.String
DT_BYTES Array von System.Byte
DT_DBTIMESTAMP System.DateTime
DT_DBTIMESTAMP2 System.DateTime
DT_DBTIMESTAMPOFFSET System.DateTimeOffset
DT_DBDATE System.DateTime
DT_DBTIME System.TimeSpan
DT_DBTIME2 System.TimeSpan
DT_DATE System.DateTime
DT_FILETIME System.DateTime
DT_NUMERIC System.Decimal
DT_GUID System.Guid
DT_I1 System.SByte
DT_I2 System.Int16
DT_I4 System.Int32
DT_I8 System.Int64
DT_BOOL System.Boolean
DT_R4 System.Single
DT_R8 System.Double
DT_UI1 System.Byte
DT_UI2 System.UInt16
DT_UI4 System.UInt32
DT_UI8 System.UInt64

Zuordnen von Integration Services-Datentypen zu optimierten verwalteten Datentypen

Unter Umständen muss eine Datenflusskomponente einen Integration Services-Datentyp in einen anderen konvertieren, bevor dieser Typ in einen verwalteten Typ konvertiert werden kann. Die ConvertBufferDataTypeToFitManaged-Methodenklasse ordnet die Integration Services-Datentypen anderen Integration Services-Datentypen zu, die dann mithilfe der BufferTypeToDataRecordType-Methode verwalteten Datentypen zugeordnet werden können.

Achtung

Entwickler sollten bei der Verwendung der PipelineComponent-Klasse sorgfältig vorgehen und ggf. eigene Codedatentyp-Zuordnungsmethoden verwenden, die für die speziellen Anforderungen ihrer benutzerdefinierten Komponenten besser geeignet sind. Die vorhandenen Methoden berücksichtigen keine numerische Genauigkeit oder Dezimalstellen oder andere Eigenschaften, die eng mit dem Datentyp verbunden sind. Microsoft kann diese Methoden ändern oder entfernen oder die durchgeführten Zuordnungen in einer künftigen Version von Integration Services ändern.

In der folgenden Tabelle wird aufgeführt, wie die ConvertBufferDataTypeToFitManaged-Methode Integration Services-Datentypen anderen Integration Services-Datentypen zuordnet.

Ursprünglicher Integration Services-Datentyp Entsprechender Integration Services-Datentyp
DT_DECIMAL DT_NUMERIC
DT_CY DT_NUMERIC
DT_DATE DT_DBTIMESTAMP
DT_DBDATE DT_DBTIMESTAMP
DT_FILETIME DT_DBTIMESTAMP
DT_DBTIMESTAMP2 DT_DBTIMESTAMP
DT_DBTIME DT_DBTIME2
DT_BOOL DT_I4
DT_TEXT DT_WSTR
DT_NTEXT DT_WSTR
DT_STR DT_WSTR
DT_IMAGE DT_BYTES

Hinweis

Die ConvertBufferDataTypeToFitManaged-Methode gibt keinen Wert für den DT_DBTIMESTAMPOFFSET-Datentyp zurück, und es tritt ein UnsupportedBufferDataTypeException auf. Sie müssen den DT_DBTIMESTAMPOFFSET-Datentyp in einen der Datums-/Zeitdatentypen von Integration Services konvertieren, die einem verwalteten Datentyp zugeordnet werden können. Eine Liste der Datums- und Uhrzeitdatentypen von Integration Services, die einem verwalteten Datentyp zugeordnet werden können, finden Sie in der Tabelle im vorhergehenden Abschnitt „Zuordnungen zwischen Integration Services und verwalteten Datentypen“. Informationen zum Konvertieren von Datentypen finden Sie unter Integration Services-Datentypen.

Weitere Informationen

BufferTypeToDataRecordType
DataRecordTypeToBufferType
ConvertBufferDataTypeToFitManaged
SQL Server Integration Services-Datentypen