Tipos de dados do Mainframe Connector

Nesta página, descrevemos todos os tipos de dados compatíveis com o Mainframe Connector.

Modificadores de campo universais

Todos os campos COBOL elementares de tamanho aceitam os seguintes modificadores de campo de transcodificador universais (configurados usando defaults, field_suffixes ou field_overrides):

  • null_if: decodifica ou codifica NULL com base no valor de um campo indicador.
  • null_if_empty: decodifica como NULL se todos os bytes no campo forem 0x00 (valores baixos); codifica NULL como bytes 0x00.
  • decode_as_null: decodifica como NULL se todos os bytes corresponderem a um valor hex_bytes configurado (por exemplo, "40" para espaços EBCDIC, "00" para valores baixos ou "FF" para valores altos) ou se o valor decodificado corresponder a uma lista de values.
  • encode_null_as: codifica NULL como um hex_byte repetido ou um value padrão específico.
  • null_if_invalid: decodifica dados de campo inválidos como NULL em vez de enviar o registro rejeitado para o conjunto de dados de transbordamento.
  • bytes: substitui o campo para ler e gravar BYTES brutos sem decodificação de caracteres.
  • filler: exclui o campo do esquema de saída decodificado e o preenche com hex_byte (padrão 0x40) durante a codificação.
  • chain: aplica vários modificadores de campo em sequência.

Tabela de mapeamento de tipos de dados COBOL

Tipo de uso do COBOL Outros modificadores de campo compatíveis Condição de copybook ou modificador Tipo lógico Tipo ORC Tipo de dados do BigQuery
COMP-1, COMP-2
(COMPUTATIONAL-1, COMPUTATIONAL-2)
hfp COMP-1 (precisão simples de 4 bytes) ou COMP-2 (precisão dupla de 8 bytes) sem cláusula PICTURE ou qualquer campo de 4 ou 8 bytes com o modificador hfp. Double double FLOAT64
BINARY, COMP, COMPUTATIONAL, COMP-4, COMP-5 (com sinal) binary
format_date
Padrão para campos binários ou quando binary.signedness está definido como SIGNED.
Tamanho em bytes por precisão (p):
  • p ≤ 4: 2 bytes
  • 5 ≤ p ≤ 9: 4 bytes
  • 10 ≤ p ≤ 18: 8 bytes
(Também aceita campos de 1, 2, 4 ou 8 bytes usando o modificador binary).
Long bigint INT64
BINARY, COMP, COMPUTATIONAL, COMP-4, COMP-5 (sem sinal) binary
format_date
O modificador binary é aplicado com signedness definido como UNSIGNED. Long bigint INT64
DISPLAY (ou qualquer campo de tamanho como bytes brutos) bytes Qualquer campo com um tamanho de byte estático que tenha o modificador de campo bytes aplicado (via field_overrides, field_suffixes ou defaults). Bytes binary BYTES
DISPLAY (ou campo de número inteiro Long) como data format_date
string
Campo de string (DISPLAY, DISPLAY-1, NATIONAL, UTF-8) ou campo de número inteiro (tipo lógico Long) com o modificador format_date e uma entrada de formato que corresponde ao comprimento de caracteres do campo (para strings) ou à precisão de dígitos (para números inteiros). Date date DATE
DISPLAY (String) como carimbo de data/hora format_timestamp
string
Campo de string com o modificador format_timestamp e uma entrada de formato que corresponde ao tamanho em bytes do campo. Timestamp timestamp TIMESTAMP
DISPLAY (*) (alfanumérico) string USAGE DISPLAY (ou USAGE omitido) com um PICTURE alfanumérico, alfabético ou alfanumérico editado (X, A, B, 0, /).
  • Se USAGE for omitido e PIC for N, será tratado como NATIONAL.
  • Se USAGE for omitido e PIC for U, será tratado como UTF-8.
String string STRING
DISPLAY-1 (DBCS) string USAGE DISPLAY-1 com PIC G (opcionalmente com B) ou PIC N. Cada símbolo ocupa 2 bytes. String string STRING
NATIONAL string USAGE NATIONAL com PIC N (ou USAGE omitido com PIC N). Cada símbolo ocupa 2 bytes. String string STRING
UTF-8 string USAGE UTF-8 com PIC U (ou USAGE omitido com PIC U). String string STRING
DISPLAY (GROUP) (string de comprimento variável) varlen Um campo de grupo com o modificador varlen que contém dois subcampos:
  1. Um subcampo de comprimento com o tipo lógico Long (por exemplo, BINARY, ZONED ou PACKED-DECIMAL com precision ≤ 18 e scale = 0).
  2. Um subcampo de string não modificado (DISPLAY, DISPLAY-1, NATIONAL ou UTF-8).
String string STRING
PACKED-DECIMAL
(COMP-3, COMPUTATIONAL-3)
packed_decimal
format_date (quando Long)
precision ≤ 18 e scale = 0
(ou packed_decimal.logical_type definido como LONG)
Long bigint INT64
PACKED-DECIMAL
(COMP-3, COMPUTATIONAL-3)
packed_decimal precision ≤ 18 e scale > 0
(ou packed_decimal.logical_type definido como DECIMAL64)
Decimal64 decimal(p, s) NUMERIC
PACKED-DECIMAL
(COMP-3, COMPUTATIONAL-3)
packed_decimal 19 ≤ precision ≤ 38 e scale = 0
(ou packed_decimal.logical_type definido como BIG_INTEGER)
BigInteger decimal(38, 0)
  • INT64 (p = 19)
  • NUMERIC (20 ≤ p ≤ 38)
  • BIGNUMERIC (p > 38)
PACKED-DECIMAL
(COMP-3, COMPUTATIONAL-3)
packed_decimal 19 ≤ precision ≤ 38 e scale > 0
(ou packed_decimal.logical_type definido como BIG_DECIMAL)
BigDecimal decimal(p, s)
  • NUMERIC (p ≤ 38 e s ≤ 9)
  • BIGNUMERIC (p > 38 ou s > 9)
ZONED
(DISPLAY com PICTURE numérico)
zoned_decimal
format_date
precision ≤ 18 e scale = 0
(ou zoned_decimal.logical_type definido como LONG)
Long bigint INT64
ZONED
(DISPLAY com PICTURE numérico)
zoned_decimal precision ≤ 18 e scale > 0
(ou zoned_decimal.logical_type definido como DECIMAL64)
Decimal64 decimal(p, s) NUMERIC
ZONED
(DISPLAY com PICTURE numérico)
zoned_decimal 19 ≤ precision ≤ 38 e scale = 0
(ou zoned_decimal.logical_type definido como BIG_INTEGER)
BigInteger decimal(38, 0)
  • INT64 (p = 19)
  • NUMERIC (20 ≤ p ≤ 38)
  • BIGNUMERIC (p > 38)
ZONED
(DISPLAY com PICTURE numérico)
zoned_decimal 19 ≤ precision ≤ 38 e scale > 0
(ou zoned_decimal.logical_type definido como BIG_DECIMAL)
BigDecimal decimal(p, s)
  • NUMERIC (p ≤ 38 e s ≤ 9)
  • BIGNUMERIC (p > 38 ou s > 9)