プラットフォームの互換性
コード ページ変換
データ プロバイダーでは、1 バイト文字セット (SBCS)、マルチバイト文字セット (MBCS)、2 バイト文字セット (DBCS)、および Unicode - UTF8 [1208] (8 ビットの Unicode 変換形式) の組み合わせがサポートされます。
ホスト CCSID
データ プロバイダーは、文字列データでコード ページ変換を実行するホスト CCSID (Coded Character Set Identifier) の値を必要とします。 既定のホスト CCSID 値は EBCDIC – 米国/カナダ [37] です。 通常、z/OS および IBM i 用 IBM DB2 データベース・サーバーは EBCDIC (拡張二項コード 10 進交換コード) を使用します。
[PC コード ページ]
データ プロバイダーは、文字列データでコード ページ変換を実行する PC コード ページの値を必要とします。 既定の PC コード ページは ANSI – ラテン語 I [1252] です。 通常、データ コンシューマーは ANSI (American National Standards Institute) または Unicode のどちらかを使用します。
バイナリを文字として処理する
DB2 のデータ プロバイダーは、DB2 データ型と Windows コンシューマー データ型に基づいて、バイナリ (CCSID 65535) および文字列データ型との間で自動的に変換されます。 DB2 エンコードは、ホスト CCSID によって決定されます。 Windows エンコードは、PC コード ページによって決定されます。
データ型のマッピング
このトピックでは、OLE DB データ型へのすべてのデータ型のマッピングについて説明します。
DB2 から ADO.NET データ型へマッピング
次の表では、DB2 データ型から ADO.NET Provider for DB2 (MsDb2Client) データ型 (MsDb2Type) へのマッピングについて説明します。
MsDb2Type | DB2 データ型 | 説明 |
---|---|---|
BigInt | Bigint | Big integer は 8 バイトのバイナリ整数です。 |
Binary | Binary | Binary は固定長のバイナリ文字列です。 |
ビット | Smallint | Small integer は 2 バイトのバイナリ整数です。 |
BLOB | BLOB | Binary large object は、非テキスト型データまたはバイナリ データを格納するために使用される可変長の文字列です。 |
Char | Char | Char は固定長の SBCS または MBCS 文字列です。 |
CLOB | CLOB | 可変長の character large object は可変長文字列です。 文字列の最大長は、DB2 のプラットフォームおよびバージョンによって異なります。 |
Date | Date | Date は 10 バイト文字列です。 |
DBCLOB | DCLOB | 可変長の double-byte character large object は、可変長グラフィックの 2 バイトのみの列です。 文字列の最大長は、DB2 のプラットフォームおよびバージョンによって異なります。 |
Decimal (10 進数型) | Decimal | Decimal はパック 10 進数です。 |
Double | Double | Double は 8 バイト倍精度浮動小数点数です。 |
Graphic | Graphic | Graphic は DBCS のみの固定長文字列です。 |
int | 整数型 | Integer は 4 バイトのバイナリ整数です。 |
数値 | 数値 | Numeric はパック 10 進数です。 |
Real | Real | Real は 4 バイト単精度浮動小数点数です。 |
SmallInt | Smallint | Small integer は 2 バイトのバイナリ整数です。 |
Time | Time | Time は 8 バイトの時刻の文字列です。 |
Timestamp | Timestamp | TimeStamp は日付、時刻、およびマイクロ秒を表す 26 バイト文字列です。 |
TinyInt | Smallint | Small integer は 2 バイトのバイナリ整数です。 |
VarBinary | Varbinary | Varying binary は可変長のバイナリ文字列です。 |
VarChar | Varchar | Varying character は可変長の SBCS または MBCS 文字列です。 |
VarGraphic | Vargraphic | Varying graphic は DBCS のみの可変長文字列です。 |
VarWideChar | Vargraphic | Varying graphic は Unicode のみの可変長文字列です。 |
VarWideGraphic | Vargraphic | Varying graphic は Unicode のみの可変長文字列です。 |
WideChar | Graphic | Graphic は固定長の Unicode 文字列です。 |
xml | XML | 整形式の XML 文書の文字列です。 |
DB2 から OLE DB データ型へのマッピング
OLE DB データ型への DB2 データ型のマッピングを次の表に示します。
OLE DB データ型 | DB2 データ型 | 説明 |
---|---|---|
DBTYPE_I8 | Bigint | Big integer は 8 バイトのバイナリ整数です。 |
DBTYPE_Bytes | BINARY | Binary は固定長のバイナリ文字列です |
DBTYPE_Bytes | BLOB | Binary large object は、非テキスト型データまたはバイナリ データを格納するために使用される可変長の文字列です。 |
DBTYPE_STR | Char | Char は固定長の SBCS または MBCS 文字列です。 |
DBTYPE_WSTR | Char | Unicode 文字は固定長 MBCS 文字列です。 |
DBTYPE_STR | CLOB | 可変長の character large object は可変長文字列です。 文字列の最大長は、DB2 のプラットフォームおよびバージョンによって異なります。 |
DBTYPE_DBDate | Date | Date は 10 バイト文字列です。 |
DBTYPE_Decimal | Decimal | Decimal はパック 10 進数です。 |
DBTYPE_R8 | Double | Double は 8 バイト倍精度浮動小数点数です。 |
DBTYPE_R8 | Float | Float は 8 バイト倍精度浮動小数点数です。 |
DBTYPE_WSTR | Graphic | Graphic は DBCS のみの固定長文字列です。 |
DBTYPE_I4 | Integer | Integer は 4 バイトのバイナリ整数です。 |
DBTYPE_STR | Long Varchar | Varying character は可変長の SBCS または MBCS 文字列です。 |
DBTYPE_WSTR | Long Varchar | 可変長の Unicode 文字列です。 |
DBTYPE_WSTR | Long Vargraphic | Varying graphic は DBCS のみの可変長文字列です。 |
DBTYPE_Numeric | 数値 | Numeric はパック 10 進数です。 |
DBTYPE_I2 | Smallint | Small integer は 2 バイトのバイナリ整数です。 |
DBTYPE_R4 | Real | Real は 4 バイト単精度浮動小数点数です。 |
DBTYPE_DBTime | Time | Time は 8 バイトの時刻の文字列です。 |
DBTYPE_DBTimestamp | Timestamp | TimeStamp は日付、時刻、およびマイクロ秒を表す 26 バイト文字列です。 |
DBTYPE_Bytes | Varbinary | Varying binary は可変長のバイナリ文字列です。 |
DBTYPE_STR | Varchar | Varying character は可変長の SBCS または MBCS 文字列です。 |
DBTYPE_WSTR | Varchar | 可変長の Unicode 文字列です。 |
DBTYPE_WSTR | VarGraphic | Varying graphic は 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 | ||
Integer | DBType_14 | 10 | ||
Bigint | DBType_18 | 19 | ||
Binary | DBType_Bytes | 255 | ||
Real | DBType_R4 | 21 | ||
Float | DBType_R8 | 53 | ||
Double | DBType_R8 | 53 | ||
Decimal | DBType_Decimal | 31 | 0 | 31 |
Graphic | DBType_WSTR | 127 | ||
VarGraphic | DBType_WSTR | 16352 | ||
Char | DBType_STR | 255 | ||
Varchar | DBType_STR | 32672 | ||
Char | DBType_WSTR | 255 | ||
Varchar | DBType_WSTR | 32672 | ||
数値 | DBType_Numeric | 31 | 0 | 31 |
Date | DBType_DBDate | 10 | ||
Time | DBType_DBTime | 8 | ||
Timestamp | DBType_Timestamp | 26 | ||
BLOB | DBType_Bytes | 2147483647 | ||
CLOB | DBType_STR | 2147483647 | ||
Long Varchar | DBType_STR | 32704 | ||
Long Varchar | DBType_WSTR | 32704 | ||
Long Vargraphic | DBType_WSTR | 16352 | ||
Varbinary | DBTypte_Bytes | 32704 |
DB2 for IBM i
データ・プロバイダーは、DB2 for IBM i に接続されている場合のこれらのデータ・タイプへのアクセスをサポートします。
DB2 Type_name | OLE DB data_type | Column_size | Minimum_scale | Maximum_scale |
---|---|---|---|---|
Binary | DBType_Bytes | 32765 | ||
Smallint | DBType_12 | 5 | ||
Integer | DBType_14 | 10 | ||
Bigint | DBType_18 | 19 | ||
Real | DBType_R4 | 24 | ||
Float | DBType_R8 | 53 | ||
Double | DBType_R8 | 53 | ||
Decimal | DBType_Decimal | 63 | 0 | 31 |
Graphic | DBType_WSTR | 16382 | ||
VarGraphic | DBType_WSTR | 16369 | ||
Char | DBType_STR | 32765 | ||
Varchar | DBType_STR | 32739 | ||
Char | DBType_WSTR | 32765 | ||
Varchar | DBType_WSTR | 32739 | ||
数値 | DBType_Numeric | 31 | 0 | 31 |
Date | DBType_DBDate | 10 | ||
Time | DBType_DBTime | 8 | ||
Timestamp | DBType_Timestamp | 26 | ||
BLOB | DBType_Bytes | 2147483647 | ||
CLOB | DBType_STR | 2147483647 | ||
Varbinary | DBType_Bytes | 32739 |
DB2 for LUW
データ プロバイダーは、DB2 for LUW に接続したときに、これらのデータ型へのアクセスをサポートします。
DB2 Type_name | OLE DB data_type | Column_size | Minimum_scale | Maximum_scale |
---|---|---|---|---|
Binary | DBType_Bytes | 254 | ||
Smallint | DBType_12 | 5 | ||
Integer | DBType_14 | 10 | ||
Bigint | DBType_18 | 19 | ||
Real | DBType_R4 | 24 | ||
Float | DBType_R8 | 53 | ||
Double | DBType_R8 | 53 | ||
Decimal | DBType_Decimal | 31 | 0 | 31 |
Graphic | DBType_WSTR | 127 | ||
VarGraphic | DBType_WSTR | 16336 | ||
Char | DBType_STR | 254 | ||
Varchar | DBType_STR | 4000 | ||
Char | DBType_WSTR | 254 | ||
Varchar | DBType_WSTR | 4000 | ||
Char() for BIT data | DBType_Bytes | 254 | ||
Varchar() for BIT data | DBType_Bytes | 32672 | ||
数値 | DBType_Numeric | 31 | 0 | 31 |
Date | DBType_DBDate | 10 | ||
Time | DBType_DBTime | 8 | ||
Timestamp | DBType_Timestamp | 26 | ||
BLOB | DBType_Bytes | 2147483647 | ||
CLOB | DBType_STR | 2147483647 | ||
Long Varchar | DBType_STR | 32700 | ||
Long Varchar | DBType_STR | 32700 | ||
Long Varchar | DBType_WSTR | 16350 | ||
Varbinary | DBTYPE_BYTES | 32762 |
SQL Server Integration Services
SQL Server Integration Services のインポート ウィザードおよびエクスポート ウィザードを Microsoft SQL Server Management Studio から使用する場合、XML マッピング ファイルを編集することで既定のデータ変換をカスタマイズできます。 XML ファイルは、64 ビットの場合は C:\Program Files\Microsoft SQL Server\130\DTSMappingFiles、32 ビットの場合は C:\Program Files (x86)\Microsoft SQL Server\130\DTSMappingFiles にあります。
SQL Server レプリケーション サービス
SQL Server レプリケーションでは、SQL Server から DB2 データ型への既定のマッピングに基づき、データが不適切に変換される場合があります。 管理者および開発者が、次の SQL Server システム ストアド プロシージャを使用して、レプリケーションのデータ型マッピングを確認し、修正することをお勧めします。
·sp_helpdatatypemap
·sp_getdefaultdatatypemapping
·sp_setdefaultdatatypemapping
詳細については、「 システム ストアド プロシージャ (Transact-SQL)」を参照してください。