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.
Hinweis: |
---|
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.
Wichtig: |
---|
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 |
|
17. Juli 2006 |
|
05. Dezember 2005 |
|