Tipos de dados do conetor de mainframe

As tabelas seguintes indicam todos os tipos de dados suportados pelo Mainframe Connector.

Tipo de utilização de COBOL Sinalizadores suportados Condição Tipo Optimized Row Columnar (ORC)​​ Tipo Comportamento de descodificação (gsutil cp) Comportamento de codificação (bq export)
Duplo FLOAT64 Codifica os tipos de dados String, Double e Float.
Se estiver assinado Longo INT64 Se o valor for NULL, devolve uma matriz de bytes vazia. Codifica os tipos de dados String, Integer e Long.
Se não tiver assinatura Longo INT64 Se o valor for NULL, devolve uma matriz de bytes vazia. Codifica os tipos de dados String, Integer e Long.
NULL_INDICATOR Se todas as seguintes condições forem satisfeitas:
  • O nome termina com _BT ou -BT.
  • A imagem não é numérica.
  • Não existe nenhum modificador de campo ou existe NULL_INDICATOR.
Bytes BYTES Nunca é armazenado como NULL. Se o valor for NULL, devolve uma matriz de bytes vazia.
FAIL_ON_INVALID_DATA Campo DATE que usa o comando DATE_CONVERTER Data DATE Se for definida uma data inválida e FAIL_ON_INVALID_DATA, é apresentado um erro e o registo é ignorado. Se o valor for NULL, devolve uma matriz de bytes vazia. Codifica os tipos de dados String, LocalDate e Date.
FAIL_ON_INVALID_DATA TIMESTAMP campo que usa o comando TIMESTAMP_CONVERTER Indicação de tempo TIMESTAMP Se for definida uma data inválida e FAIL_ON_INVALID_DATA, é apresentado um erro e o registo é ignorado. Se o valor for NULL, devolve uma matriz de bytes vazia. Codifica os tipos de dados String e Timestamp.
NULL_INDICATOR EMPTY_STRING_AS_NULL TRIM_STRING_SUFFIX Imagem não numérica, se existir. Se as imagens contiverem o seguinte:
  • N e NSYMBOL == NATIONAL usam UTF-16BE
  • N e NSYMBOL == DBCS atuam como DISPLAY-1
  • U usa UTF8
Bytes STRING É realizada a seguinte transformação do conjunto de carateres:
Primeiro, os bytes são descodificados em carateres e, em seguida, esses carateres são codificados em bytes baseados em UTF-8 armazenados no vetor de coluna. Dependendo da EMPTY_STRING_AS_NULL, os dados são armazenados como NULL. Consoante TRIM_STRING_SUFFIX, os espaços em branco finais e os valores baixos são cortados.
Se o valor for NULL, devolve uma matriz de bytes vazia. Codifica os tipos de dados String, LocalDate, BigDecimal e Timestamp.
NULL_INDICATOR EMPTY_STRING_AS_NULL TRIM_STRING_SUFFIX Se o nome do campo terminar com _DBCS ou -DBCS , use a codificação shift-out, shift-in. Bytes STRING Consulte DISPLAY (*) Consulte DISPLAY (*)
NULL_INDICATOR EMPTY_STRING_AS_NULL TRIM_STRING_SUFFIX Consulte DISPLAY (*) Bytes STRING Consulte DISPLAY (*) Consulte DISPLAY (*)
NULL_INDICATOR EMPTY_STRING_AS_NULL TRIM_STRING_SUFFIX Consulte DISPLAY (*) Bytes STRING Consulte DISPLAY (*) Consulte DISPLAY (*)
VARIABLE_LENGTH_ENABLED VARIABLE_LENGTH_LEN_SUFFIX VARIABLE_LENGTH_DATA_SUFFIX Se VARIABLE_LENGTH_ENABLED estiver definido, o campo tem um comprimento variável e é marcado por uma estrutura de grupo de dois ou três campos, consoante um campo NULL_INDICATOR adicional:
  • O primeiro campo termina com -LEN ou com o valor definido por VARIABLE_LENGTH_LEN_SUFFIX.
  • O segundo campo termina com -TEXT ou com o valor definido por VARIABLE_LENGTH_DATA_SUFFIX.
Bytes STRING A parte de dados é descodificada como DISPLAY, mas nunca é armazenada como NULL. Se o valor for NULL, devolve uma matriz de bytes vazia. Codifica os tipos de dados String, LocalDate e BigDecimal.
EMPTY_VALUES_ARE_NULL FAIL_ON_INVALID_DATA Decimal64 NUMERIC Descodificar como NULL, se todos os bytes forem:
  • Espaços, alta ou baixa, e
  • Não FAIL_ON_INVALID_DATA ou,
  • FAIL_ON_INVALID_DATA e,
  • EMPTY_VALUES_ARE_NULL.

Se os dados forem inválidos e FAIL_ON_INVALID_DATA estiver definido, é apresentado um erro e o registo é ignorado.
Se o valor for NULL, devolve uma matriz de bytes vazia. Codifica o tipo de dados String e BigDecimal.
EMPTY_VALUES_ARE_NULL FAIL_ON_INVALID_DATA precision <= 18 && scale == 0 Longo INT64 Descodificar como NULL, se todos os bytes forem:
  • Espaços, alta ou baixa, e
  • Não FAIL_ON_INVALID_DATA ou,
  • FAIL_ON_INVALID_DATA e,
  • EMPTY_VALUES_ARE_NULL.

Se os dados forem inválidos e FAIL_ON_INVALID_DATA estiver definido, é apresentado um erro e o registo é ignorado.
Descodifique em long partindo do princípio de que a codificação é EBCDIC para o nibble sign.
Se o valor for NULL, devolve uma matriz de bytes vazia. Codifica os tipos de dados String, Long e BigDecimal.
EMPTY_VALUES_ARE_NULL FAIL_ON_INVALID_DATA precision <= 18 Decimal64 NUMERIC Descodificar como NULL, se todos os bytes forem:
  • Espaços, alta ou baixa, e
  • Não FAIL_ON_INVALID_DATA ou,
  • FAIL_ON_INVALID_DATA e,
  • EMPTY_VALUES_ARE_NULL.

Se os dados forem inválidos e FAIL_ON_INVALID_DATA estiver definido, é apresentado um erro e o registo é ignorado.
Descodificar em long assumindo a codificação EBCDIC para sign nibble.
Se o valor for NULL, devolve uma matriz de bytes vazia. Codifica os tipos de dados String, Long e BigDecimal.
EMPTY_VALUES_ARE_NULL FAIL_ON_INVALID_DATA 18 < precision <= 38 Decimal BIGNUMERIC Descodificar como NULL, se todos os bytes forem:
  • Espaços, alta ou baixa, e
  • Não FAIL_ON_INVALID_DATA ou,
  • FAIL_ON_INVALID_DATA e,
  • EMPTY_VALUES_ARE_NULL.

Se os dados forem inválidos e FAIL_ON_INVALID_DATA estiver definido, é apresentado um erro e o registo é ignorado.
Descodificar em long assumindo a codificação EBCDIC para sign nibble.
Se o valor for NULL, devolve uma matriz de bytes vazia. Codifica o tipo de dados String, Long, BigInteger e BigDecimal.