SQL Server Integration Services-Datentypen

Aktualisiert: 15. September 2007

Wenn Daten an einen Datenfluss in einem Paket weitergegeben werden, konvertiert die Quelle, die die Daten extrahiert, diese in einen Integration Services-Datentyp. Numerischen Daten wird ein numerischer Datentyp, Zeichenfolgendaten wird ein Zeichendatentyp und Daten ein Datumsdatentyp zugewiesen. Anderen Daten, wie z. B. GUIDs und BLOBs (Binary Large Object Blocks), werden ebenfalls entsprechende Integration Services-Datentypen zugewiesen. Falls Daten von einem Datentyp sind, der nicht in einen Integration Services-Datentyp konvertiert werden kann, tritt ein Fehler auf.

Einige Datenflusskomponenten konvertieren Integration Services-Datentypen in verwaltete Datentypen von Microsoft .NET Framework. Weitere Informationen zum Zuordnen von Integration Services-Datentypen zu verwalteten Datentypen finden Sie unter Mapping Data Types in the Data Flow.

In der folgenden Tabelle sind die Integration Services-Datentypen aufgeführt.

Datentyp Beschreibung

DT_BOOL

Ein boolescher Wert.

DT_BYTES

Ein binärer Datenwert. Die Länge ist variabel, und die maximale Länge beträgt 8000 Bytes.

DT_CY

Ein Währungswert. Dieser Datentyp ist eine ganze Zahl mit Vorzeichen und einer Länge von 8 Bytes, mit 4 Dezimalstellen und einer maximalen Genauigkeit von 19.

DT_DATE

Eine Datumsstruktur bestehend aus dem Jahr, dem Monat, dem Tag und der Stunde.

Der DT_DATE-Datentyp wird mithilfe einer 8-Byte-Gleitkommazahl implementiert. Tage werden durch ganze Zahlen dargestellt, die jeweils auf die nächsthöhere Zahl erhöht werden, beginnend am 30. Dezember 1899 um 0 Uhr Mitternacht. Stundenwerte werden als absolute Werte der Stellen hinter dem Dezimalpunkt dargestellt. Ein Gleitkommawert kann jedoch nicht alle reellen Werte darstellen. Daher ist der im DT_DATE-Datentyp darstellbare Datumsbereich begrenzt.

Im Vergleich dazu enthält der DT_DBTIMESTAMP-Datentyp eine Struktur mit einzelnen Feldern zum Darstellen von Jahren, Monaten, Tagen, Stunden, Minuten, Sekunden und Millisekunden. Die Datumsbereiche, die dieser Datentyp darstellen kann, sind nicht begrenzt.

DT_DBDATE

Eine Datumsstruktur bestehend aus dem Jahr, dem Monat und dem Tag.

DT_DBTIME

Eine Zeitstruktur bestehend aus der Stunde, der Minute und der Sekunde.

DT_DBTIMESTAMP

Eine Timestampstruktur, die aus dem Jahr, dem Monat, dem Tag, der Stunde, der Minute, der Sekunde und der Millisekunde besteht.

DT_DECIMAL

Ein genauer numerischer Wert mit einer festen Genauigkeit und festen Dezimalstellen. Dieser Datentyp ist eine ganze Zahl ohne Vorzeichen und einer Länge von 12 Bytes, mit 0 bis 28 Dezimalstellen und einer maximalen Genauigkeit von 29.

DT_FILETIME

Ein 64-Bit-Wert, der die Anzahl von 100-Nanosekunden-Intervallen seit dem 1. Januar 1601 darstellt.

DT_GUID

Ein global eindeutiger Bezeichner (GUID, Globally Unique Identifier).

DT_I1

Eine ganze Zahl mit Vorzeichen und einer Länge von 1 Byte.

DT_I2

Eine ganze Zahl mit Vorzeichen und einer Länge von 2 Bytes.

DT_I4

Eine ganze Zahl mit Vorzeichen und einer Länge von 4 Bytes.

DT_I8

Eine ganze Zahl mit Vorzeichen und einer Länge von 8 Bytes.

DT_NUMERIC

Ein genauer numerischer Wert mit einer festen Genauigkeit und festen Dezimalstellen. Dieser Datentyp ist eine ganze Zahl ohne Vorzeichen und einer Länge von 16 Bytes, mit 0 bis 38 Dezimalstellen und einer maximalen Genauigkeit von 38.

DT_R4

Ein Gleitkommawert mit einfacher Genauigkeit

DT_R8

Ein Gleitkommawert mit doppelter Genauigkeit

DT_STR

Eine NULL-terminierte ANSI/MBCS-Zeichenfolge mit einer maximalen Länge von 8000 Zeichen. (Wenn ein Spaltenwert zusätzliche Nullabschlusszeichen enthält, wird die Zeichenfolge bei der ersten Null abgeschnitten.)

DT_UI1

Eine ganze Zahl ohne Vorzeichen und einer Länge von 1 Byte.

DT_UI2

Eine ganze Zahl ohne Vorzeichen und einer Länge von 2 Bytes.

DT_UI4

Eine ganze Zahl ohne Vorzeichen und einer Länge von 4 Bytes.

DT_UI8

Eine ganze Zahl ohne Vorzeichen und einer Länge von 8 Bytes.

DT_WSTR

Eine NULL-terminierte Unicode-Zeichenfolge mit einer maximalen Länge von 4000 Zeichen. (Wenn ein Spaltenwert zusätzliche Nullabschlusszeichen enthält, wird die Zeichenfolge bei der ersten Null abgeschnitten.)

DT_IMAGE

Ein Binärwert mit einer maximalen Länge von 231-1 (2.147.483.647) Bytes. .

DT_NTEXT

Eine Unicode-Zeichenfolge mit einer maximalen Länge von 230 - 1 (1.073.741.823) Zeichen.

DT_TEXT

Eine ANSI/MBCS-Zeichenfolge mit einer maximalen Länge von 231 -1 (2.147.483.647) Zeichen.

Ändern des Datentyps von Spalten

Falls die Daten in einer Spalte nicht die vom Quelldatentyp zugeordnete volle Breite benötigen, können Sie den Datentyp der Spalte ändern. Wenn jede Datenzeile so schmal wie möglich ist, wird die Leistung beim Übertragen von Daten optimiert, denn umso schmaler eine Zeile ist, desto schneller werden die Daten von der Quelle an das Ziel verschoben.

Integration Services enthält einen vollständigen Satz numerischer Datentypen, sodass der Datentyp in hohem Maß auf die Größe der Daten abgestimmt werden kann. Wenn z. B. die Werte in einer Spalte mit einem DT_UI8-Datentyp immer ganze Zahlen zwischen 0 und 3000 sind, können Sie den Datentyp in DT_UI2 ändern. Wenn entsprechend eine Spalte mit dem DT_CY-Datentyp die Datenanforderungen des Pakets erfüllen kann, indem stattdessen ein ganzzahliger Datentyp verwendet wird, können Sie den Datentyp in DT_I4 ändern.

Darüber hinaus können Sie den Datentyp in einer Spalte mit Datums-/Zeitdaten ändern, um den Tag oder die Uhrzeit der Daten zu extrahieren. Wenn Sie z. B. den Datentyp einer Spalte von DT_DBTIMESTAMP in DT_DBTIME ändern, sind nur die Komponenten für die Stunde, die Minute und die Sekunde des Wertes verfügbar.

Es gibt folgende Möglichkeiten, um den Datentyp einer Spalte zu ändern:

  • Mithilfe einer Transformation, um Spaltenwerte durch die Ergebnisse eines Ausdrucks zu ersetzen, oder um eine Kopie einer Spalte zu erstellen, die einen anderen Datentyp als die ursprüngliche Spalte aufweist. Weitere Informationen finden Sie unter Transformation für abgeleitete Spalten.
  • Mithilfe einer Transformation, um den Datentyp einer Spalte in einen anderen Datentyp umzuwandeln. Weitere Informationen finden Sie unter Transformation für Datenkonvertierung.
ms141036.note(de-de,SQL.90).gifHinweis:
Boolesche Werte sind keine Zahlen, sondern logische Werte. Obwohl einige Umgebungen boolesche Werte als Zahlenwerte darstellen, werden Sie nicht als Zahlen gespeichert. Je nach Programmiersprache werden boolesche Werte als unterschiedliche Zahlenwerte dargestellt. Dies gilt auch für .NET Framework-Methoden. Beispielsweise konvertieren die Konvertierungsfunktionen von Visual Basic den Wert True in den Zahlenwert -1. Die System.Convert.ToInt32-Methode von .NET Framework konvertiert True jedoch in den Zahlenwert +1. In der Integration Services-Ausdruckssprache wird True in den Wert -1 konvertiert. Um Fehler oder unerwartete Ergebnisse zu vermeiden, sollten Sie keinen Code erstellen, der von bestimmten numerischen Werten für True und False abhängig ist. Nach Möglichkeit sollten bei booleschen Variablen nur die für sie vorgesehenen logischen Werte verwendet werden.

Zuordnen von SQL Server Integration Services-Datentypen zu Datenbank-Datentypen

Die folgenden Tabelle gibt Hinweise für die Zuordnung von Datentypen bestimmter Datenbanken zu Integration Services-Datentypen. Diese Zuordnungen sind den Zuordnungsdateien entnommen, die vom SQL Server-Import/Export-Assistenten beim Importieren von Daten aus den betreffenden Quellen verwendet werden. Weitere Informationen zu diesen Zuordnungsdateien finden Sie unter Erstellen von Paketen mit dem SQL Server-Import/Export-Assistenten.

ms141036.note(de-de,SQL.90).gifWichtig:
Die Zuordnungen sind nicht als strenge Entsprechungen zu verstehen, sondern stellen lediglich Anhaltspunkte dar. In bestimmten Fällen muss möglicherweise ein anderer Dateityp als der in der Tabelle angegebene verwendet werden.
Datentyp SQL Server (SQLOLEDB; SQLNCLI) SQL Server (SqlClient) Jet Oracle (MSDAORA) Oracle (OracleClient) DB2 (DB2OLEDB) DB2 (IBMDADB2)

DT_BOOL

bit

bit

Bit

DT_BYTES

binary, varbinary, timestamp

binary, varbinary, timestamp

BigBinary, VarBinary

RAW

RAW

DT_CY

smallmoney, money

smallmoney, money

Currency

DT_DATE

DT_DBDATE

DT_DBTIME

DT_DBTIMESTAMP

datetime, smalldatetime

datetime, smalldatetime

DateTime

TIMESTAMP, DATE, INTERVAL

TIMESTAMP, DATE, INTERVAL

TIME, TIMESTAMP, DATE

TIME, TIMESTAMP, DATE

DT_DECIMAL

DT_FILETIME

DT_GUID

uniqueidentifier

uniqueidentifier

GUID

DT_I1

DT_I2

smallint

smallint

Short

SMALLINT

SMALLINT

DT_I4

int

int

Long

INTEGER

INTEGER

DT_I8

bigint

bigint

BIGINT

BIGINT

DT_NUMERIC

decimal, numeric

decimal, numeric

Decimal

NUMBER, INT

NUMBER, INT

DECIMAL, NUMERIC

DECIMAL, NUMERIC

DT_R4

real

real

Single

REAL

REAL

DT_R8

float

float

Double

FLOAT, REAL

FLOAT, REAL

FLOAT, DOUBLE

FLOAT, DOUBLE

DT_STR

char, varchar

VarChar

CHAR, ROWID, VARCHAR2

CHAR, VARCHAR

CHAR, VARCHAR

DT_UI1

tinyint

tinyint

Byte

DT_UI2

DT_UI4

DT_UI8

DT_WSTR

nchar, nvarchar, sql_variant, xml

char, varchar, nchar, nvarchar, sql_variant, xml

LongText

NVARCHAR2, NCHAR

CHAR, ROWID, VARCHAR2, NVARCHAR2, NCHAR

GRAPHIC, VARGRAPHIC

GRAPHIC, VARGRAPHIC

DT_IMAGE

image

image

LongBinary

LONG RAW, BLOB, LOBLOCATOR, BFILE, VARGRAPHIC, LONG VARGRAPHIC, benutzerdefiniert

LONG RAW, BLOB, LOBLOCATOR, BFILE, VARGRAPHIC, LONG VARGRAPHIC, benutzerdefiniert

CHAR () FOR BIT DATA, VARCHAR () FOR BIT DATA

CHAR () FOR BIT DATA, VARCHAR () FOR BIT DATA, BLOB

DT_NTEXT

ntext

text, ntext

NCLOB, NVARCHAR, TEXT

LONG, CLOB, NCLOB, NVARCHAR, TEXT

LONG VARCHAR, NCHAR, NVARCHAR, TEXT

LONG VARCHAR, DBCLOB, NCHAR, NVARCHAR, TEXT

DT_TEXT

Text

CLOB, LONG

LONG VARCHAR FOR BIT DATA

LONG VARCHAR FOR BIT DATA, CLOB

Informationen zum Zuordnen von Datentypen im Datenfluss finden Sie unter Mapping Data Types in the Data Flow.

Siehe auch

Konzepte

Verwenden von Daten in Datenflüssen

Hilfe und Informationen

Informationsquellen für SQL Server 2005

Änderungsverlauf

Version Verlauf

15. September 2007

Geänderter Inhalt:
  • Die Beschreibung des DT_DBTIMESTAMP-Datentyps wurde aktualisiert.

17. Juli 2006

Geänderter Inhalt:
  • Hinweis zu möglichen Problemen beim Konvertieren von booleschen Datentypen in Ganzzahlen wurde hinzugefügt.
  • Hinweis wurde hinzugefügt, dass Spaltenwerte des Typs DT_STR oder DT_WSTR, die zusätzliche Nullabschlusszeichen enthalten, beim ersten Nullzeichen abgeschnitten werden.

05. Dezember 2005

Geänderter Inhalt:
  • Informationen und Link zum Thema über das Zuordnen von Integration Services-Datentypen zu verwalteten Datentypen wurden hinzugefügt.
  • Vergleich zwischen dem DT_DATE- und dem DT_DBTIMESTAMP-Datentyp wurde hinzugefügt.