Mainframe Connector 数据类型

下表列出了 Mainframe Connector 支持的所有数据类型。

COBOL 使用类型 支持的标志 条件 优化行列式 (ORC) 类型 类型 解码行为 (gsutil cp) 编码行为 (bq export)
双精度型 FLOAT64 对 String、Double 和 Float 数据类型进行编码。
如果已签名 长 INT64 如果值为 NULL,则返回空字节数组。对 String、Integer 和 Long 数据类型进行编码。
如果未签名 长 INT64 如果值为 NULL,则返回空字节数组。对 String、Integer 和 Long 数据类型进行编码。
NULL_INDICATOR 如果同时满足以下所有条件:
  • 名称以 _BT 或 -BT. 结尾
  • 图片不是数字。
  • 没有字段修饰符或 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 图片不是数字(如有)。如果图片包含以下内容:
  • N 和 NSYMBOL == NATIONAL 使用 UTF-16BE
  • N 和 NSYMBOL == DBCS 充当 DISPLAY-1
  • U 使用 UTF8
字节 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 字段:
  • 第一个字段以 -LEN 或 VARIABLE_LENGTH_LEN_SUFFIX 设置的值结尾。
  • 第二个字段以 -TEXT 或 VARIABLE_LENGTH_DATA_SUFFIX 设置的值结尾。
字节 STRING 数据部分会解码为 DISPLAY,但绝不会存储为 NULL。 如果值为 NULL,则返回空字节数组。对 String、LocalDate 和 BigDecimal 数据类型进行编码。
EMPTY_VALUES_ARE_NULL FAIL_ON_INVALID_DATA Decimal64 NUMERIC 如果所有字节均满足以下条件,则解码为 NULL:
  • 空格、高或低,以及
  • 不是 FAIL_ON_INVALID_DATA,或者
  • FAIL_ON_INVALID_DATA 和
  • EMPTY_VALUES_ARE_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,或者
  • FAIL_ON_INVALID_DATA 和
  • EMPTY_VALUES_ARE_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,或者
  • FAIL_ON_INVALID_DATA 和
  • EMPTY_VALUES_ARE_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,或者
  • FAIL_ON_INVALID_DATA 和
  • EMPTY_VALUES_ARE_NULL。

如果数据无效且已设置 FAIL_ON_INVALID_DATA,系统会显示错误,并忽略相应记录。
假设 sign nibble 采用 EBCDIC 编码,将其解码为 long。
如果值为 NULL,则返回空字节数组。对 String、Long、BigInteger 和 BigDecimal 数据类型进行编码。