OLE DBでは、OLEおよびWindowsの標準データ型を使用します。 データ型の記述には、OLE DB型識別子が使用されます。これは、列挙型DBTYPEの変数です。 Teradata Access Module for OLE DBでは、OLE DB型識別子で指定されたC/C++データ型を取得し、このデータ型をTeradataのデータ型に変換します。 Teradataのデータ型は、DBTYPE値およびDBCOLUMNFLAGS値に基づきます。
データ型のマッピングは、Teradata OLE DBプロバイダのデータをデータベースに転送する場合に必要になります。 次のテーブルは、Teradataのデータ型へのOLE DB型識別子のマッピングのリストです。
| DBTYPE | DBCOLUMNFLAG | Teradataデータ型 |
|---|---|---|
| DBTYPE_11 | BYTE(n)1 | |
| DBTYPE_I2 | SMALLINT | |
| DBTYPE_I4 | INTEGER | |
| DBTYPE_I8 | BIGINT | |
| DBTYPE_UI1 | SMALLINT | |
| DBTYPE_UI2 | INTEGER | |
| DBTYPE_UI4 | DECIMAL(10,0) | |
| DBTYPE_UI8 | BIGINT | |
| DBTPYE_R4 | FLOAT | |
| DBTYPE_R8 | FLOAT | |
| DBTYPE_NUMERIC | DECIMAL(p,s)1 NUMBER(p,s)1 |
|
| DBTYPE_DECIMAL | DECIMAL(p,s)1 | |
| DBTYPE_CY | 18を超える精度用のDECIMAL(19,4) 18未満の精度用のDECIMAL(18,4) |
|
| DBTYPE_BSTR | VARCHAR(64000) | |
| DBTYPE_IDISPATCH | BYTE(n) | |
| DBTYPE_ERROR | DECIMAL(10,0) | |
| DBTYPE_BOOL | BYTEINT | |
| DBTYPE_VARIANT | VARCHAR (8000), SMALLINT 4 | |
| DBTYPE_IUKNOWN | BYTE(n)2 | |
| DBTYPE_GUID | BYTE(n)2 | |
| DBTYPE_BYTES | DBCOLUMNFLAGS_ISFIXEDLENGTH | BYTE(n)2 |
| DBTYPE_BYTES | VARBYTE(n)2 | |
| DBTYPE_STR | DBCOLUMNFLAGS_ISFIXEDLENGTH | PERIOD(DATE) |
| DBTYPE_STR | DBCOLUMNFLAGS_ISFIXEDLENGTH | PERIOD[TIME(p)] |
| DBTYPE_STR | DBCOLUMNFLAGS_ISFIXEDLENGTH | PERIOD[TIMESTAMP(p)] |
| DBTYPE_STR | DBCOLUMNFLAGS_ISFIXEDLENGTH | CHAR(n)2 |
| DBTYPE_STR | VARCHAR(n)2 | |
| DBTYPE_WSTR | DBCOLUMNFLAGS_ISFIXEDLENGTH | CHAR(n)2 |
| DBTYPE_WSTR | VARCHAR(n)2 | |
| DBTYPE_UDT | サポートしていません | |
| DBTYPE_DATE | TIMESTAMP(p)、DATE、TIME3 | |
| DBTYPE_DBDATE | DATE | |
| DBTYPE_DBTIMESTAMP | TIMESTAMP(p)、DATE、TIME3 | |
| DBTYPE_ARRAY | サポートしていません | |
| DBTYPE_BYREF | データが実際のデータ値へのポインタであることを示します。 例えば、DBTYPE_I2 | DBTYPE_BYREFは、このデータが2バイトの整数のアドレスを含むことを意味します。 サポートされるデータ型はすべて、DBTYPE_BYREFを使用して参照できます。 | |
| DBTYPE_VECTOR | サポートしていません | |
| DBTYPE_RESERVED | サポートしていません | |
| DBTYPE_NULL | サポートしていません | |
| DBTYPE_EMPTY | サポートしていません | |
| DBTYPE_DBTIME | TIME | |
| DBTYPE_FILETIME | TIMESTAMP(p)、DATE、FLOAT3 | |
| DBTYPE_PROPVARIANT | サポートしていません | |
| DBTYPE_HCHAPTER | DECIMAL(10,0) | |
| DBTYPE_VARNUMERIC | VARCHAR(n)2 | |
| 1精度(p)とスケール(s)。 2nは、BYTE(n)およびVARBYTE(n)についてはバイト数を、CHAR(n)およびVARCHAR(n)については文字数を示します。 3(Teradata TIMESTAMP(p)として使用可能にした上で)すべての日付と時刻のデータ型はデータ型の日付部分についてはTeradata DATE型とし、時刻部分についてはTeradata TIMEとして分割する必要があります。 4DBTYPE_VARIANT型はすべて、VARIANT構造の値部分についてはTeradata VARCHAR(8000)型として分割され、VT部分についてはTeradata SMALLINTとして分割されます。 |
||