下表列出了 Mainframe Connector 支持的所有数据类型。
COBOL 使用类型 | 支持的标志 | 条件 | 优化行列式 (ORC) 类型 | 类型 | 解码行为 (gsutil cp ) |
编码行为 (bq export ) |
---|---|---|---|---|---|---|
|
双精度型 | FLOAT64 |
对 String 、Double 和 Float 数据类型进行编码。 |
|||
|
如果已签名 | 长 | INT64 |
如果值为 NULL ,则返回空字节数组。对 String 、Integer 和 Long 数据类型进行编码。 |
||
|
如果未签名 | 长 | INT64 |
如果值为 NULL ,则返回空字节数组。对 String 、Integer 和 Long 数据类型进行编码。 |
||
|
NULL_INDICATOR | 如果同时满足以下所有条件:
|
字节 | BYTES |
绝不会存储为 NULL 。 |
如果值为 NULL ,则返回空字节数组。 |
|
FAIL_ON_INVALID_DATA | 使用 DATE_CONVERTER 命令的 DATE 字段 | 日期 | DATE |
如果设置了无效的日期和 FAIL_ON_INVALID_DATA ,系统会显示错误并忽略相应记录。 |
如果值为 NULL ,则返回空字节数组。对 String 、LocalDate 和 Date 数据类型进行编码。 |
|
FAIL_ON_INVALID_DATA | 使用 TIMESTAMP_CONVERTER 命令的 TIMESTAMP 字段 | 时间戳 | TIMESTAMP |
如果设置了无效的日期和 FAIL_ON_INVALID_DATA ,系统会显示错误并忽略相应记录。 |
如果值为 NULL ,则返回空字节数组。对 String 和 Timestamp 数据类型进行编码。 |
|
NULL_INDICATOR EMPTY_STRING_AS_NULL TRIM_STRING_SUFFIX | 图片不是数字(如有)。如果图片包含以下内容:
|
字节 | STRING |
系统会执行以下字符集转换: 首先,将字节解码为字符,然后将这些字符编码为存储在列向量中的基于 UTF-8 的字节。数据会存储为 NULL ,具体取决于 EMPTY_STRING_AS_NULL 。
系统会根据 TRIM_STRING_SUFFIX 截去尾随空格和低值。
|
如果值为 NULL ,则返回空字节数组。对 String 、LocalDate 、BigDecimal 和 Timestamp 数据类型进行编码。 |
|
NULL_INDICATOR EMPTY_STRING_AS_NULL TRIM_STRING_SUFFIX | 如果字段名称以 _DBCS 或 -DBCS 结尾,请使用 shift-out、shift-in 编码。
|
字节 | STRING |
请参阅 DISPLAY (*) | 请参阅 DISPLAY (*) |
|
NULL_INDICATOR EMPTY_STRING_AS_NULL TRIM_STRING_SUFFIX | 请参阅 DISPLAY (*) | 字节 | STRING |
请参阅 DISPLAY (*) | 请参阅 DISPLAY (*) |
|
NULL_INDICATOR EMPTY_STRING_AS_NULL TRIM_STRING_SUFFIX | 请参阅 DISPLAY (*) | 字节 | STRING |
请参阅 DISPLAY (*) | 请参阅 DISPLAY (*) |
|
VARIABLE_LENGTH_ENABLED VARIABLE_LENGTH_LEN_SUFFIX VARIABLE_LENGTH_DATA_SUFFIX | 如果设置了 VARIABLE_LENGTH_ENABLED ,该字段的长度可变,并由两个或三个字段组成的组结构标记,具体取决于额外的 NULL_INDICATOR 字段:
|
字节 | STRING |
数据部分会解码为 DISPLAY ,但绝不会存储为 NULL 。 |
如果值为 NULL ,则返回空字节数组。对 String 、LocalDate 和 BigDecimal 数据类型进行编码。 |
|
EMPTY_VALUES_ARE_NULL FAIL_ON_INVALID_DATA | Decimal64 | NUMERIC |
如果所有字节均满足以下条件,则解码为 NULL :
如果数据无效且已设置 FAIL_ON_INVALID_DATA ,系统会显示错误,并忽略相应记录。
|
如果值为 NULL ,则返回空字节数组。对 String 和 BigDecimal 数据类型进行编码。 |
|
|
EMPTY_VALUES_ARE_NULL FAIL_ON_INVALID_DATA | precision <= 18 && scale == 0 |
长 | INT64 |
如果所有字节均满足以下条件,则解码为 NULL :
如果数据无效且已设置 FAIL_ON_INVALID_DATA ,系统会显示错误,并忽略相应记录。
假设 sign nibble 采用 EBCDIC 编码,将其解码为 long 。
|
如果值为 NULL ,则返回空字节数组。对 String 、Long 和 BigDecimal 数据类型进行编码。 |
|
EMPTY_VALUES_ARE_NULL FAIL_ON_INVALID_DATA | precision <= 18 |
Decimal64 | NUMERIC |
如果所有字节均满足以下条件,则解码为 NULL :
如果数据无效且已设置 FAIL_ON_INVALID_DATA ,系统会显示错误,并忽略相应记录。
假设 sign nibble 采用 EBCDIC 编码,将其解码为 long 。
|
如果值为 NULL ,则返回空字节数组。对 String 、Long 和 BigDecimal 数据类型进行编码。 |
|
EMPTY_VALUES_ARE_NULL FAIL_ON_INVALID_DATA | 18 < precision <= 38 |
十进制 | BIGNUMERIC |
如果所有字节均满足以下条件,则解码为 NULL :
如果数据无效且已设置 FAIL_ON_INVALID_DATA ,系统会显示错误,并忽略相应记录。
假设 sign nibble 采用 EBCDIC 编码,将其解码为 long 。
|
如果值为 NULL ,则返回空字节数组。对 String 、Long 、BigInteger 和 BigDecimal 数据类型进行编码。 |