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として分割されます。 |