Generic JDBC 连接器使用 JDBC 类型 (java.sql.Types) 将高级 SQL 引擎数据类型映射到目标数据类型。它依靠 ResultSetMetaData.GetColumnType() 的返回值来检索目标列的数据类型,然后将其映射到 QueryGrid 全局类型。
全局类型到 Generic JDBC 数据类型
Generic JDBC 目标连接器将 JDBC 数据类型映射到全局数据类型,全局数据类型由发起程序连接器映射到高级 SQL 引擎数据类型。
JDBC 数据类型 | 全局数据类型 | SQLE 数据类型 |
---|---|---|
BIT | G_Bit | Byteint |
BYTE, LONGVARBINARY | G_Blob | BLOB |
BOOLEAN | G_Boolean | Byteint |
BIGINT | G_BigInt | Bigint |
INTEGER | G_Integer | 整数 |
TINYINT, SMALLINT | G_SmallInt | Smallint |
BINARY | G_Byte | Byte |
VARBINARY | G_Varbyte | Varbyte |
CHAR, NCHAR | G_Char_UTF16 | Char |
LONGVARCHAR, CLOB, LONGNVARCHAR, NCLOB | G_Clob_UTF16 | CLOB |
DATE | G_Date | 日期 |
DECIMAL | G_Decimal | Decimal |
REAL, FLOAT, DOUBLE | G_Double | 双精度 |
NUMERIC | G_Number | 数字 |
TIMESTAMP | G_Timestamp | 时间戳 |
TIME_WITH_TIMEZONE | G_TimestampWithTimeZone | Time with time zone |
TIME | G_Time | 时间 |
VARCHAR, NVARCHAR, ARRAY | G_Varchar_UTF16 | Varchar |
Generic JDBC 数据类型到全局类型
在目标上创建临时表时,发起的 Teradata Connector 将高级 SQL 引擎数据类型映射到全局类型,全局类型由 Generic JDBC 连接器映射到 JDBC 类型。
SQLE 数据类型 | 全局数据类型 | JDBC 数据类型 |
---|---|---|
Byteint | G_Bit | BIT |
BLOB | G_Blob | BLOB |
Byteint | G_Boolean | BOOLEAN |
Bigint | G_BigInt | BIGINT |
整数 | G_Integer | INTEGER |
Smallint | G_SmallInt | SMALLINT |
Byteint | G_ByteInt | SMALLINT |
Byte | G_Byte | BINARY |
Varbyte | G_Varbyte | VARBINARY |
Char | G_Char_Latin/G_Char_UTF16 | CHAR/NCHAR |
Clob | G_Clob_Latin/G_Clob_UTF16 | CLOB/NCLOB |
Date | G_Date | DATE |
Decimal | G_Decimal | DECIMAL |
Double precision | G_Double | FLOAT |
Number | G_Number | DECIMAL |
Float | G_Float | FLOAT |
Timestamp | G_TimeStamp | TIMESTAMP |
Time with time zone | G_TimeWithTimeZone | TIME_WITH_TIMEZONE |
Timestamp with time zone | G_TimeStampWithTimeZone | TIMESTAMP_WITH_TIMEZONE |
Time | G_Time | TIME |
Varchar | G_Varchar_Latin/G_Varchar_UTF16 | VARCHAR/NVARCHAR |
当目标表包含不支持的数据类型时,可以将 NVP 不支持的数据类型设置为强制转换为 Varchar,将具有不支持类型的列转换为 varchar。只有可转换为 varchar 的数据类型以及相反的从 varchar 数据类型转换为不支持的数据类型,才支持此操作。