DB2 的資料提供者

平台相容性

程式碼頁轉換

資料提供者支援單位元組字元集(SBCS)、混合位元組字元集(MBCS)、雙位元組字元集(DBCS)以及 Unicode - UTF8 [1208],這是一種 8 位元的 Unicode 轉換格式。

主機 CCSID

資料提供者需要一個主機 CCSID(編碼字元集識別碼)的值,以便對字串資料執行代碼頁轉換。 預設的宿主 CCSID 值為 EBCDIC – 美國/加拿大 [37]。 通常,IBM DB2 的 z/OS 與 IBM i 資料庫伺服器使用 EBCDIC(擴展二進位編碼十進位交換碼)。

PC 程式碼頁面

資料提供者需要一個 PC 代碼頁的值,以便對字串資料進行代碼頁轉換。 預設的 PC 代碼頁為 ANSI – 拉丁文 I [1252]。 通常,資料使用者會使用 ANSI(美國國家標準協會)或 Unicode。

程序二元檔作為角色

DB2 的資料提供者會自動在二進位(CCSID 65535)及字串資料型別之間轉換,這些資料型別基於 DB2 資料型態與 Windows 消費者型態。 DB2 編碼由主機 CCSID 決定。 Windows 編碼由 PC 代碼頁決定。

資料型態映射

本主題描述所有資料型別映射到 OLE DB 資料型態。

DB2 到 ADO.NET 資料型態映射

下表描述了 DB2 資料型別映射到 ADO.NET Provider for DB2(MsDb2Client)資料型別(MsDb2Type)。

MsDb2類型 DB2 資料型別 說明
BigInt 比金特 大整數是 8 位元組的二進位整數。
Binary Binary 二進位是一種固定長度的二進位字串。
bit Smallint 小整數是兩位元組的二進位整數。
BLOB BLOB 二進位大型物件是一種可變長度的字串,用於儲存非文字或二進位資料。
卡爾 卡爾 字元是固定長度的 SBCS 或 MBCS 字串。
CLOB CLOB 可變長度字元的大物件是可變長度的字串。 字串的最大長度取決於 DB2 平台及版本。
日期 日期 日期是一個 10 位元組的字串。
DBCLOB DCLOB 可變長度雙位元組字元大型物件是可變長度的圖形雙位元組字串。 字串的最大長度取決於 DB2 平台及版本。
十進制 十進制 小數點是一種打包的十進位數字。
Double Double 雙重是一個 8 位元組的雙精度浮點數。
Graphic Graphic 圖形是固定長度僅支援 DBCS 的字串。
整數 整數 整數是 4 位元組的二進位整數。
Numeric Numeric 數字是一個打包的小數。
里耳 里耳 實數是一個 4 位元組的單精度浮點數。
SmallInt Smallint 小整數是兩位元組的二進位整數。
時間 時間 時間是一個 8 位元組的時間串。
時間戳 時間戳 時間戳記是一個 26 位元組的字串,代表日期、時間和微秒。
TinyInt Smallint 小整數是兩位元組的二進位整數。
VarBinary Varbinary 變二進位是長度可變的二進位字串。
VarChar Varchar 變化字元是可變長度的 SBCS 或 MBCS 字串。
VarGraphic 變體 變形圖形是一段長度不變的 DBCS 字串。
變異查爾 變體 變化圖形是長度不變的 Unicode 字串。
VarWideGraphic 變體 變化圖形是長度不變的 Unicode 字串。
寬角 Graphic 圖形是一個固定長度的 Unicode 字串。
Xml XML 一個格式良好的 XML 文件字串。

DB2 到 OLE DB 資料型態映射

下表描述了 DB2 資料型別映射到 OLE DB 資料型態的過程。

OLE DB 資料類型 DB2 資料型別 說明
DBTYPE_I8 比金特 大整數是 8 位元組的二進位整數。
DBTYPE_Bytes BINARY 二進位是固定長度的二進位字串
DBTYPE_Bytes BLOB 二進位大型物件是一種可變長度的字串,用於儲存非文字或二進位資料。
DBTYPE_STR 卡爾 字元是固定長度的 SBCS 或 MBCS 字串。
DBTYPE_WSTR 卡爾 Unicode 字元是固定長度的 MBCS 字串。
DBTYPE_STR CLOB 可變長度字元的大物件是可變長度的字串。 字串的最大長度取決於 DB2 平台及版本。
DBTYPE_DBDate 日期 日期是一個 10 位元組的字串。
DBTYPE_Decimal 十進制 小數點是一種打包的十進位數字。
DBTYPE_R8 Double 雙重是一個 8 位元組的雙精度浮點數。
DBTYPE_R8 浮動 浮點數是一個 8 位元組的雙精度浮點數。
DBTYPE_WSTR Graphic 圖形是固定長度僅支援 DBCS 的字串。
DBTYPE_I4 整數 整數是 4 位元組的二進位整數。
DBTYPE_STR 朗·瓦爾查爾 變化字元是可變長度的 SBCS 或 MBCS 字串。
DBTYPE_WSTR 朗·瓦爾查爾 一個可變長度的 Unicode 字串。
DBTYPE_WSTR 長變量 變形圖形是一段長度不變的 DBCS 字串。
DBTYPE_Numeric Numeric 數字是一個打包的小數。
DBTYPE_I2 Smallint 小整數是兩位元組的二進位整數。
DBTYPE_R4 里耳 實數是一個 4 位元組的單精度浮點數。
DBTYPE_DBTime 時間 時間是一個 8 位元組的時間串。
DBTYPE_DBTimestamp 時間戳 時間戳記是一個 26 位元組的字串,代表日期、時間和微秒。
DBTYPE_Bytes Varbinary 變二進位是長度可變的二進位字串。
DBTYPE_STR Varchar 變化字元是可變長度的 SBCS 或 MBCS 字串。
DBTYPE_WSTR Varchar 一個可變長度的 Unicode 字串。
DBTYPE_WSTR VarGraphic 變形圖形是一段長度不變的 DBCS 字串。

OLE DB 中的結構資訊是透過預先定義的結構列集取得,並使用 IDBSchemaRowset::GetRowset。 資料提供者會公開PROVIDER_TYPES列集,以指示基於 IBM DB2 平台與版本的 DB2 到 OLE DB 資料型別支援(型別、映射、限制)。

DB2 for z/OS

資料提供者在連接 DB2 for z/OS 時,支援存取這些資料型態。

DB2 Type_name OLE DB data_type Column_size Minimum_scale Maximum_scale
Smallint DBType_12 5
整數 DBType_14 10
比金特 DBType_18 19
Binary DBType_Bytes 255
里耳 DBType_R4 21
浮動 DBType_R8 53
Double DBType_R8 53
十進制 DBType_Decimal 31 0 31
Graphic DBType_WSTR 127
VarGraphic DBType_WSTR 16352
卡爾 DBType_STR 255
Varchar DBType_STR 32,672
卡爾 DBType_WSTR 255
Varchar DBType_WSTR 32,672
Numeric DBType_Numeric 31 0 31
日期 DBType_DBDate 10
時間 DBType_DBTime 8
時間戳 DBType_Timestamp 26
BLOB DBType_Bytes 2147483647
CLOB DBType_STR 2147483647
朗·瓦爾查爾 DBType_STR 32,704
朗·瓦爾查爾 DBType_WSTR 32,704
長變量 DBType_WSTR 16352
Varbinary DBTypte_Bytes 32,704

IBM i 的 DB2

資料提供者在連接 IBM i 的 DB2 時,支援存取這些資料型態。

DB2 Type_name OLE DB data_type Column_size Minimum_scale Maximum_scale
Binary DBType_Bytes 32765
Smallint DBType_12 5
整數 DBType_14 10
比金特 DBType_18 19
里耳 DBType_R4 24
浮動 DBType_R8 53
Double DBType_R8 53
十進制 DBType_Decimal 63 0 31
Graphic DBType_WSTR 16382
VarGraphic DBType_WSTR 16369
卡爾 DBType_STR 32765
Varchar DBType_STR 32739
卡爾 DBType_WSTR 32765
Varchar DBType_WSTR 32739
Numeric DBType_Numeric 31 0 31
日期 DBType_DBDate 10
時間 DBType_DBTime 8
時間戳 DBType_Timestamp 26
BLOB DBType_Bytes 2147483647
CLOB DBType_STR 2147483647
Varbinary DBType_Bytes 32739

LUW 的 DB2

資料提供者在連接 DB2 for LUW 時支援存取這些資料型態。

DB2 Type_name OLE DB data_type Column_size Minimum_scale Maximum_scale
Binary DBType_Bytes 254
Smallint DBType_12 5
整數 DBType_14 10
比金特 DBType_18 19
里耳 DBType_R4 24
浮動 DBType_R8 53
Double DBType_R8 53
十進制 DBType_Decimal 31 0 31
Graphic DBType_WSTR 127
VarGraphic DBType_WSTR 16336
卡爾 DBType_STR 254
Varchar DBType_STR 4000
卡爾 DBType_WSTR 254
Varchar DBType_WSTR 4000
Char() 用於 BIT 資料 DBType_Bytes 254
Varchar() 用於 BIT 資料 DBType_Bytes 32,672
Numeric DBType_Numeric 31 0 31
日期 DBType_DBDate 10
時間 DBType_DBTime 8
時間戳 DBType_Timestamp 26
BLOB DBType_Bytes 2147483647
CLOB DBType_STR 2147483647
朗·瓦爾查爾 DBType_STR 32700
朗·瓦爾查爾 DBType_STR 32700
朗·瓦爾查爾 DBType_WSTR 16350
Varbinary DBTYPE_BYTES 32762

SQL Server Integration Services

使用 Microsoft SQL Server 管理工作室的 SQL Server 整合服務匯入與匯出精靈時,可以透過編輯 XML 映射檔案來自訂預設資料轉換。 XML檔案位於 C:\Program Files\Microsoft SQL Server\130\DTSMappingFiles (64位元)及C :\Program Files (x86)\Microsoft SQL Server\130\DTSMappingFiles (32位元)。

SQL Server 複寫服務

SQL Server 複製可能會根據預設的 SQL Server 映射到 DB2 資料型別,錯誤轉換資料。 我們建議管理員與開發人員使用以下 SQL Server 系統儲存程序審查並修訂複製資料型態映射。