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 codificaNULLcom base no valor de um campo indicador.null_if_empty: decodifica comoNULLse todos os bytes no campo forem0x00(valores baixos); codificaNULLcomo bytes0x00.decode_as_null: decodifica comoNULLse todos os bytes corresponderem a um valorhex_bytesconfigurado (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 devalues.encode_null_as: codificaNULLcomo umhex_byterepetido ou umvaluepadrão específico.null_if_invalid: decodifica dados de campo inválidos comoNULLem vez de enviar o registro rejeitado para o conjunto de dados de transbordamento.bytes: substitui o campo para ler e gravarBYTESbrutos sem decodificação de caracteres.filler: exclui o campo do esquema de saída decodificado e o preenche comhex_byte(padrão0x40) 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) |
binaryformat_date
|
Padrão para campos binários ou quando binary.signedness está definido como SIGNED.Tamanho em bytes por precisão ( p):
binary).
|
Long |
bigint |
INT64 |
BINARY, COMP, COMPUTATIONAL, COMP-4, COMP-5 (sem sinal) |
binaryformat_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_datestring
|
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_timestampstring
|
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, /).
|
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:
|
String |
string |
STRING |
PACKED-DECIMAL( COMP-3, COMPUTATIONAL-3)
|
packed_decimalformat_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) |
|
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) |
|
ZONED( DISPLAY com PICTURE numérico)
|
zoned_decimalformat_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) |
|
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) |
|