The following tables lists all the data types that Mainframe Connector supports.
| COBOL usage type | Supported flags | Condition | Optimized Row Columnar (ORC) type | Type | Decoding behavior (gsutil cp) | 
    Encoding behavior (bq export) | 
  
|---|---|---|---|---|---|---|
 | 
    Double | FLOAT64 | 
    Encodes the String, Double, and
    Float data types. | 
  |||
 | 
    If signed | Long | INT64 | 
    If the value is NULL, returns an empty byte array. Encodes
    the String, Integer, and Long data
    types. | 
  ||
 | 
    If unsigned | Long | INT64 | 
    If the value is NULL, returns an empty byte array. Encodes
    the String, Integer, and Long data
    types. | 
  ||
 | 
    NULL_INDICATOR | If all the following condition are satisfied:
    
  | 
    Bytes | BYTES | 
    Is never stored as NULL. | 
    If the value is NULL, returns an empty byte array. | 
  
 | 
    FAIL_ON_INVALID_DATA | DATE field which uses the DATE_CONVERTER command | Date | DATE | 
    If an invalid date and FAIL_ON_INVALID_DATA is set, an
    error is displayed and the record is ignored. | 
    If the value is NULL, returns an empty byte array. Encodes
    the String, LocalDate, and Date data
    types. | 
  
 | 
    FAIL_ON_INVALID_DATA | TIMESTAMP field which uses the TIMESTAMP_CONVERTER command | Timestamp | TIMESTAMP | 
    If an invalid date and FAIL_ON_INVALID_DATA is set, an
    error is displayed and the record is ignored. | 
    If the value is NULL, returns an empty byte array. Encodes
    the String and Timestamp data types. | 
  
 | 
    NULL_INDICATOR EMPTY_STRING_AS_NULL TRIM_STRING_SUFFIX | Picture not numeric, if any. If pictures contains the following:
    
  | 
    Bytes | STRING | 
    The following character set transformation is performed:
     First, bytes are decoded into characters, and then those characters are encoded into UTF-8-based bytes stored into the column vector. Depending on the EMPTY_STRING_AS_NULL, data is stored as NULL.
    Depending on TRIM_STRING_SUFFIX, trailing whitespaces and low
    values are trimmed.
     | 
    If the value is NULL, returns an empty byte array. Encodes
    the String, LocalDate, BigDecimal,
    and Timestamp data types. | 
  
 | 
    NULL_INDICATOR EMPTY_STRING_AS_NULL TRIM_STRING_SUFFIX | If the field name ends with _DBCS or -DBCS
    then use shift-out, shift-in encoding.
     | 
    Bytes | STRING | 
    See DISPLAY (*) | See DISPLAY (*) | 
 | 
    NULL_INDICATOR EMPTY_STRING_AS_NULL TRIM_STRING_SUFFIX | See DISPLAY (*) | Bytes | STRING | 
    See DISPLAY (*) | See DISPLAY (*) | 
 | 
    NULL_INDICATOR EMPTY_STRING_AS_NULL TRIM_STRING_SUFFIX | See DISPLAY (*) | Bytes | STRING | 
    See DISPLAY (*) | See DISPLAY (*) | 
 | 
    VARIABLE_LENGTH_ENABLED VARIABLE_LENGTH_LEN_SUFFIX VARIABLE_LENGTH_DATA_SUFFIX | If VARIABLE_LENGTH_ENABLED is set, the field is of
    variable length, and marked by a group structure of two or three fields,
    depending on an extra NULL_INDICATOR field:
    
  | 
    Bytes | STRING | 
    The data part is decoded as DISPLAY, but is never stored as
    NULL. | 
    If the value is NULL, returns an empty byte array. Encodes
    the String, LocalDate, and BigDecimal
    data types. | 
  
 | 
    EMPTY_VALUES_ARE_NULL FAIL_ON_INVALID_DATA | Decimal64 | NUMERIC | 
    Decode as NULL, if all the bytes are:
    
 If the data is invalid, and FAIL_ON_INVALID_DATA is set, an
    error is displayed, and the record is ignored.
     | 
    If the value is NULL, returns an empty byte array. Encodes
    the String and BigDecimal data type. | 
  |
 | 
    EMPTY_VALUES_ARE_NULL FAIL_ON_INVALID_DATA | precision <= 18 && scale == 0 | 
    Long | INT64 | 
    Decode as NULL, if all the bytes are:
    
 If the data is invalid, and FAIL_ON_INVALID_DATA is set, an
    error is displayed, and the record is ignored.
    Decode into long assuming EBCDIC encoding for The
    sign nibble.
     | 
    If the value is NULL, returns an empty byte array. Encodes
    the String, Long and BigDecimal
    data types. | 
  
 | 
    EMPTY_VALUES_ARE_NULL FAIL_ON_INVALID_DATA | precision <= 18 | 
    Decimal64 | NUMERIC | 
    Decode as NULL, if all the bytes are:
    
 If the data is invalid, and FAIL_ON_INVALID_DATA is set, an
    error is displayed, and the record is ignored.
    Decode into long assuming EBCDIC encoding for
    sign nibble.
     | 
    If the value is NULL, returns an empty byte array. Encodes
    the String, Long and BigDecimal data
    types. | 
  
 | 
    EMPTY_VALUES_ARE_NULL FAIL_ON_INVALID_DATA | 18 < precision <= 38 | 
    Decimal | BIGNUMERIC | 
    Decode as NULL, if all the bytes are:
    
 If the data is invalid, and FAIL_ON_INVALID_DATA is set, an
    error is displayed, and the record is ignored.
    Decode into long assuming EBCDIC encoding for
    sign nibble.
     | 
    If the value is NULL, returns an empty byte array. Encodes
    the String, Long, BigInteger, and
    BigDecimal data type. |