平台相容性
程式碼頁轉換
資料提供者支援單位元組字元集(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 系統儲存程序審查並修訂複製資料型態映射。
·sp_helpdatatypemap
·sp_getdefaultdatatypemapping
·sp_setdefaultdatatypemapping
欲了解更多資訊,請參閱 系統儲存程序(Transact-SQL)。