Tipos de datos de Mainframe Connector

En las siguientes tablas, se enumeran todos los tipos de datos que admite el conector de Mainframe.

Tipo de uso de COBOL Marcas compatibles Condición Tipo de Optimized Row Columnar (ORC)​​ Tipo Comportamiento de decodificación (gsutil cp) Comportamiento de codificación (bq export)
Doble FLOAT64 Codifica los tipos de datos String, Double y Float.
Si se firmó Largo INT64 Si el valor es NULL, muestra un array de bytes vacío. Codifica los tipos de datos String, Integer y Long.
Si no está firmado Largo INT64 Si el valor es NULL, muestra un array de bytes vacío. Codifica los tipos de datos String, Integer y Long.
NULL_INDICATOR Si se cumplen todas las siguientes condiciones:
  • El nombre termina con _BT o -BT.
  • La imagen no es numérica.
  • No hay modificador de campo ni NULL_INDICATOR.
Bytes BYTES Nunca se almacena como NULL. Si el valor es NULL, muestra un array de bytes vacío.
FAIL_ON_INVALID_DATA Campo DATE que usa el comando DATE_CONVERTER Fecha DATE Si se establece una fecha no válida y FAIL_ON_INVALID_DATA, se muestra un error y se ignora el registro. Si el valor es NULL, muestra un array de bytes vacío. Codifica los tipos de datos String, LocalDate y Date.
FAIL_ON_INVALID_DATA Campo TIMESTAMP que usa el comando TIMESTAMP_CONVERTER Marca de tiempo TIMESTAMP Si se establece una fecha no válida y FAIL_ON_INVALID_DATA, se muestra un error y se ignora el registro. Si el valor es NULL, muestra un array de bytes vacío. Codifica los tipos de datos String y Timestamp.
NULL_INDICATOR EMPTY_STRING_AS_NULL TRIM_STRING_SUFFIX La imagen no es numérica, si corresponde. Si las imágenes contienen lo siguiente:
  • N y NSYMBOL == NATIONAL usan UTF-16BE.
  • N y NSYMBOL == DBCS actúan como DISPLAY-1
  • U usa UTF8
Bytes STRING Se realiza la siguiente transformación del grupo de caracteres:
Primero, los bytes se decodifican en caracteres y, luego, esos caracteres se codifican en bytes basados en UTF-8 almacenados en el vector de columnas. Según EMPTY_STRING_AS_NULL, los datos se almacenan como NULL. Según TRIM_STRING_SUFFIX, se recortan los espacios en blanco finales y los valores bajos.
Si el valor es NULL, muestra un array de bytes vacío. Codifica los tipos de datos String, LocalDate, BigDecimal y Timestamp.
NULL_INDICATOR EMPTY_STRING_AS_NULL TRIM_STRING_SUFFIX Si el nombre del campo termina con _DBCS o -DBCS, usa la codificación de desplazamiento hacia afuera y hacia adentro. Bytes STRING Consulta DISPLAY (*) Consulta DISPLAY (*)
NULL_INDICATOR EMPTY_STRING_AS_NULL TRIM_STRING_SUFFIX Consulta DISPLAY (*) Bytes STRING Consulta DISPLAY (*) Consulta DISPLAY (*)
NULL_INDICATOR EMPTY_STRING_AS_NULL TRIM_STRING_SUFFIX Consulta DISPLAY (*) Bytes STRING Consulta DISPLAY (*) Consulta DISPLAY (*)
VARIABLE_LENGTH_ENABLED VARIABLE_LENGTH_LEN_SUFFIX VARIABLE_LENGTH_DATA_SUFFIX Si se establece VARIABLE_LENGTH_ENABLED, el campo es de longitud variable y está marcado por una estructura de grupo de dos o tres campos, según un campo NULL_INDICATOR adicional:
  • El primer campo termina con -LEN o con el valor establecido por VARIABLE_LENGTH_LEN_SUFFIX.
  • El segundo campo termina con -TEXT o con el valor que establece VARIABLE_LENGTH_DATA_SUFFIX.
Bytes STRING La parte de datos se decodifica como DISPLAY, pero nunca se almacena como NULL. Si el valor es NULL, muestra un array de bytes vacío. Codifica los tipos de datos String, LocalDate y BigDecimal.
EMPTY_VALUES_ARE_NULL FAIL_ON_INVALID_DATA Decimal64 NUMERIC Decodifica como NULL si todos los bytes cumplen con las siguientes condiciones:
  • Espacios, alto o bajo, y
  • No es FAIL_ON_INVALID_DATA o
  • FAIL_ON_INVALID_DATA y
  • EMPTY_VALUES_ARE_NULL

Si los datos no son válidos y se establece FAIL_ON_INVALID_DATA, se muestra un error y se ignora el registro.
Si el valor es NULL, muestra un array de bytes vacío. Codifica el tipo de datos String y BigDecimal.
EMPTY_VALUES_ARE_NULL FAIL_ON_INVALID_DATA precision <= 18 && scale == 0 Largo INT64 Decodifica como NULL si todos los bytes cumplen con las siguientes condiciones:
  • Espacios, alto o bajo, y
  • No es FAIL_ON_INVALID_DATA o
  • FAIL_ON_INVALID_DATA y
  • EMPTY_VALUES_ARE_NULL

Si los datos no son válidos y se establece FAIL_ON_INVALID_DATA, se muestra un error y se ignora el registro.
Decodifica en long suponiendo la codificación EBCDIC para el nibble sign.
Si el valor es NULL, muestra un array de bytes vacío. Codifica los tipos de datos String, Long y BigDecimal.
EMPTY_VALUES_ARE_NULL FAIL_ON_INVALID_DATA precision <= 18 Decimal64 NUMERIC Decodifica como NULL si todos los bytes cumplen con las siguientes condiciones:
  • Espacios, alto o bajo, y
  • No es FAIL_ON_INVALID_DATA o
  • FAIL_ON_INVALID_DATA y
  • EMPTY_VALUES_ARE_NULL

Si los datos no son válidos y se establece FAIL_ON_INVALID_DATA, se muestra un error y se ignora el registro.
Decodifica en long suponiendo la codificación EBCDIC para el nibble sign.
Si el valor es NULL, muestra un array de bytes vacío. Codifica los tipos de datos String, Long y BigDecimal.
EMPTY_VALUES_ARE_NULL FAIL_ON_INVALID_DATA 18 < precision <= 38 Decimal BIGNUMERIC Decodifica como NULL si todos los bytes cumplen con las siguientes condiciones:
  • Espacios, alto o bajo, y
  • No es FAIL_ON_INVALID_DATA o
  • FAIL_ON_INVALID_DATA y
  • EMPTY_VALUES_ARE_NULL

Si los datos no son válidos y se establece FAIL_ON_INVALID_DATA, se muestra un error y se ignora el registro.
Decodifica en long suponiendo la codificación EBCDIC para el nibble sign.
Si el valor es NULL, muestra un array de bytes vacío. Codifica los tipos de datos String, Long, BigInteger y BigDecimal.