Integration Services 資料類型
更新: 2007 年 9 月 15 日
當資料輸入封裝中的資料流程時,擷取資料的來源會將資料轉換為 Integration Services 資料類型。數值資料會指派為數值資料類型、字串資料指派為字元資料類型,而日期則是指派為日期資料類型。其他資料,例如 GUID 和「二進位大型物件區塊 (BLOB)」也都會被指派適當的 Integration Services 資料類型。如果資料的資料類型不能轉換為 Integration Services 資料類型,則會發生錯誤。
部分資料流程元件會在 Integration Services 資料類型和 Microsoft .NET Framework 的 Managed 資料類型之間轉換資料類型。如需有關 Integration Services 與 Managed 資料類型間對應的詳細資訊,請參閱<Mapping Data Types in the Data Flow>。
下表列出 Integration Services 資料類型。
資料類型 | 描述 |
---|---|
DT_BOOL |
布林值。 |
DT_BYTES |
二進位資料值。長度是變數,最大長度為 8000 個位元組。 |
DT_CY |
貨幣值。此資料類型是小數位數為 4,最大有效位數為 19 的 8 位元組帶正負號的整數。 |
DT_DATE |
包含年、月、日和小時的日期結構。 DT_DATE 資料類型需使用 8 位元組的浮點數加以實作。日期是以累進整數來表示,從 1899 年 12 月 30 日開始,並以午夜作為零時。小時值則以小數點後數字部分的絕對值來表示。不過,浮點值不能代表所有實數值;因此,DT_DATE 可以呈現的日期範圍便有所限制。 另一方面,DT_DBTIMESTAMP 是以包含年、月、日、時、分、秒及毫秒等個別欄位的結構來表示,而且這種資料類型能夠呈現的日期範圍並無任何限制。 |
DT_DBDATE |
包含年、月和日的日期結構。 |
DT_DBTIME |
包含小時、分鐘和秒的時間結構。 |
DT_DBTIMESTAMP |
包含年、月、日、小時、分鐘、秒和毫秒的時間戳記結構。 |
DT_DECIMAL |
具有固定有效位數和固定小數位數的精確數值。此資料類型是具有單獨的符號,小數位數為 0 至 28,最大有效位數為 29 的 12 位元組不帶正負號的整數。 |
DT_FILETIME |
代表自 1601 年 1 月 1 日起 100 奈秒間隔數目的 64 位元組值。 |
DT_GUID |
全域唯一識別碼 (GUID)。 |
DT_I1 |
一位元組帶正負號的整數。 |
DT_I2 |
兩位元組帶正負號的整數。 |
DT_I4 |
四位元組帶正負號的整數。 |
DT_I8 |
八位元組帶正負號的整數。 |
DT_NUMERIC |
具有固定有效位數和小數位數的精確數值。此資料類型是具有單獨的符號,小數位數為 0 至 38,最大有效位數為 38 的 16 位元組不帶正負號的整數。 |
DT_R4 |
單精度浮點值。 |
DT_R8 |
雙精度浮點值。 |
DT_STR |
最大長度為 8000 字元,以 Null 終止的 ANSI/MBCS 字元字串。如果資料行值包含額外的 Null 結束字元,字串就會在第一個 Null 出現時被截斷。 |
DT_UI1 |
一位元組不帶正負號的整數。 |
DT_UI2 |
兩位元組不帶正負號的整數。 |
DT_UI4 |
四位元組不帶正負號的整數。 |
DT_UI8 |
八位元組不帶正負號的整數。 |
DT_WSTR |
最大長度為 4000 字元,以 Null 終止的 Unicode 字元字串。如果資料行值包含額外的 Null 結束字元,字串就會在第一個 Null 出現時被截斷。 |
DT_IMAGE |
大小上限為 231-1 (2,147,483,647) 個位元組的二進位值。. |
DT_NTEXT |
最大長度為 230 - 1 (1,073,741,823) 個字元的 Unicode 字元字串。 |
DT_TEXT |
最大長度為 231 -1 (2,147,483,647) 個字元的 ANSI/MBCS 字元字串。 |
變更資料行的資料類型
如果資料行中的資料不需要來源資料類型配置的全形字元,您可能需要變更該資料行的資料類型。在傳送資料時,每個資料列愈窄愈有助於最佳化效能,因為每個資料列愈窄,資料從來源移動到目的地的速度就會愈快。
Integration Services 包含完整的一組數值資料類型,以便您可以使資料類型與資料大小密切相符。例如,如果資料類型為 DT_UI8 之資料列中的值始終是 0 至 3000 之間的整數,則您可以將資料類型變更為 DT_UI2。同樣地,如果資料類型為 DT_CY 的資料行可以透過改用整數資料類型來滿足封裝資料需求,則您可以將資料類型變更為 DT_I4。
您也可以變更具有日期/時間資料之資料行的資料類型,以擷取該資料的日期或時間部分。例如,如果您將資料行的資料類型從 DT_DBTIMESTAMP 變更為 DT_DBTIME,則僅該值的小時、分鐘和秒部分可用。
您可以透過下列方式變更資料行的資料類型:
- 使用轉換以運算式的結果取代資料行的值,或建立資料類型與原始資料行不同的資料行副本。如需詳細資訊,請參閱<衍生的資料行轉換>。
- 使用轉換將資料行的資料類型從一個資料類型轉換為不同的資料類型。如需詳細資訊,請參閱<資料轉換>。
![]() |
---|
布林值是邏輯值,而非數字。雖然布林值可以在某些環境下顯示為數字,但不會儲存為數字,而且不同的程式設計語言將布林值表示成數值的方式各有不同,.NET Framework 方法也是如此。 例如,Visual Basic 提供的轉換函數會將 True 轉換為 -1;然而 .NET Framework 中的 System.Convert.ToInt32 方法卻將 True 轉換為 +1。Integration Services 運算式語言則將 True 轉換為 -1。 若要避免錯誤或非預期結果,您所撰寫的程式碼不應該以特定數值表示 True 和 False。您應該盡可能將布林變數的使用限制在當初所設計的邏輯值上。 |
將 Integration Services 資料類型對應到資料庫資料類型
下表提供將某些資料庫所使用的資料類型對應到 Integration Services 資料類型的指南。這些對應是摘錄自「SQL Server 匯入和匯出精靈」在匯入這些來源的資料時所使用的對應檔案。如需這些對應檔案的詳細資訊,請參閱<使用 SQL Server 匯入和匯出精靈建立封裝>。
![]() |
---|
這些對應不是要用來嚴格限制相等的對應,而只是提供對應時的指南,在某些情況下,您可能需要使用不同於這個表格所列的資料類型。 |
資料類型 | 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 |
貨幣 |
||||
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, user-defined |
LONG RAW, BLOB, LOBLOCATOR, BFILE, VARGRAPHIC, LONG VARGRAPHIC, user-defined |
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 |
如需對應資料流程中之資料類型的詳細資訊,請參閱<Mapping Data Types in the Data Flow>。
請參閱
概念
說明及資訊
變更歷程記錄
版本 | 歷程記錄 |
---|---|
2007 年 9 月 15 日 |
|
2006 年 7 月 17 日 |
|
2005 年 12 月 5 日 |
|