Tipi di dati di Mainframe Connector

Questa pagina descrive tutti i tipi di dati supportati da Mainframe Connector.

Modificatori di campo universali

Tutti i campi COBOL elementari di qualsiasi dimensione supportano i seguenti modificatori di campo del transcodificatore universali (configurati utilizzando defaults, field_suffixes o field_overrides):

  • null_if: decodifica o codifica NULL in base al valore di un campo indicatore.
  • null_if_empty: decodifica come NULL se tutti i byte nel campo sono 0x00 (valori bassi); codifica NULL come byte 0x00.
  • decode_as_null: decodifica come NULL se tutti i byte corrispondono a un valore hex_bytes configurato (ad esempio, "40" per gli spazi EBCDIC, "00" per i valori bassi o "FF" per i valori alti) o se il valore decodificato corrisponde a un elenco di values.
  • encode_null_as: codifica NULL come hex_byte ripetuto o value predefinito specifico.
  • null_if_invalid: decodifica i dati dei campi non validi come NULL anziché inviare il record rifiutato al set di dati di spillover.
  • bytes: esegue l'override del campo per leggere e scrivere BYTES non elaborati senza decodifica dei caratteri.
  • filler: esclude il campo dallo schema di output decodificato e lo compila con hex_byte (valore predefinito 0x40) durante la codifica.
  • chain: applica più modificatori di campo in sequenza.

Tabella di mappatura dei tipi di dati COBOL

Tipo di utilizzo COBOL Modificatori di campo aggiuntivi supportati Condizione copybook o modificatore Tipo logico Tipo di ORC Tipo di dati BigQuery
COMP-1, COMP-2
(COMPUTATIONAL-1, COMPUTATIONAL-2)
hfp COMP-1 (precisione singola a 4 byte) o COMP-2 (precisione doppia a 8 byte) senza clausola PICTURE o qualsiasi campo a 4 o 8 byte con il modificatore hfp. Double double FLOAT64
BINARY, COMP, COMPUTATIONAL, COMP-4, COMP-5 (firmato) binary
format_date
Valore predefinito per i campi binari o quando binary.signedness è impostato su SIGNED.
Dimensioni in byte per precisione (p):
  • p ≤ 4: 2 byte
  • 5 ≤ p ≤ 9: 4 byte
  • 10 ≤ p ≤ 18: 8 byte
(Supporta anche campi da 1, 2, 4 o 8 byte utilizzando il modificatore binary.)
Long bigint INT64
BINARY, COMP, COMPUTATIONAL, COMP-4, COMP-5 (non firmato) binary
format_date
Il modificatore binary viene applicato con signedness impostato su UNSIGNED. Long bigint INT64
DISPLAY (o qualsiasi campo di dimensioni come byte non elaborati) bytes Qualsiasi campo con una dimensione in byte statica a cui è applicato il modificatore di campo bytes (tramite field_overrides, field_suffixes o defaults). Bytes binary BYTES
DISPLAY (o campo intero Long) come data format_date
string
Campo stringa (DISPLAY, DISPLAY-1, NATIONAL, UTF-8) o campo intero (tipo logico Long) con il modificatore format_date e una voce di formato corrispondente alla lunghezza dei caratteri del campo (per le stringhe) o alla precisione delle cifre (per gli interi). Date date DATE
DISPLAY (String) come Timestamp format_timestamp
string
Campo stringa con il modificatore format_timestamp e una voce di formato corrispondente alla dimensione in byte del campo. Timestamp timestamp TIMESTAMP
DISPLAY (*) (alfanumerico) string USAGE DISPLAY (o USAGE omesso) con un PICTURE alfanumerico, alfabetico o alfanumerico modificato (X, A, B, 0, /).
  • Se USAGE viene omesso e PIC è N, viene considerato come NATIONAL.
  • Se USAGE viene omesso e PIC è U, viene considerato come UTF-8.
String string STRING
DISPLAY-1 (DBCS) string USAGE DISPLAY-1 con PIC G (facoltativamente con B) o PIC N. Ogni simbolo occupa 2 byte. String string STRING
NATIONAL string USAGE NATIONAL con PIC N (o USAGE omesso con PIC N). Ogni simbolo occupa 2 byte. String string STRING
UTF-8 string USAGE UTF-8 con PIC U (o USAGE omesso con PIC U). String string STRING
DISPLAY (GROUP) (stringa di lunghezza variabile) varlen Un campo di gruppo con il modificatore varlen contenente due campi secondari:
  1. Un sottocampo di lunghezza con tipo logico Long (ad es. BINARY, ZONED o PACKED-DECIMAL con precision ≤ 18 e scale = 0).
  2. Un sottocampo di stringa non modificato (DISPLAY, DISPLAY-1, NATIONAL o UTF-8).
String string STRING
PACKED-DECIMAL
(COMP-3, COMPUTATIONAL-3)
packed_decimal
format_date (quando Long)
precision ≤ 18 e scale = 0
(o packed_decimal.logical_type impostato su LONG)
Long bigint INT64
PACKED-DECIMAL
(COMP-3, COMPUTATIONAL-3)
packed_decimal precision ≤ 18 e scale > 0
(o packed_decimal.logical_type impostato su DECIMAL64)
Decimal64 decimal(p, s) NUMERIC
PACKED-DECIMAL
(COMP-3, COMPUTATIONAL-3)
packed_decimal 19 ≤ precision ≤ 38 e scale = 0
(o packed_decimal.logical_type impostato su 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
(o packed_decimal.logical_type impostato su BIG_DECIMAL)
BigDecimal decimal(p, s)
  • NUMERIC (p ≤ 38 e s ≤ 9)
  • BIGNUMERIC (p > 38 o s > 9)
ZONED
(DISPLAY con PICTURE numerico)
zoned_decimal
format_date
precision ≤ 18 e scale = 0
(o zoned_decimal.logical_type impostato su LONG)
Long bigint INT64
ZONED
(DISPLAY con PICTURE numerico)
zoned_decimal precision ≤ 18 e scale > 0
(o zoned_decimal.logical_type impostato su DECIMAL64)
Decimal64 decimal(p, s) NUMERIC
ZONED
(DISPLAY con PICTURE numerico)
zoned_decimal 19 ≤ precision ≤ 38 e scale = 0
(o zoned_decimal.logical_type impostato su BIG_INTEGER)
BigInteger decimal(38, 0)
  • INT64 (p = 19)
  • NUMERIC (20 ≤ p ≤ 38)
  • BIGNUMERIC (p > 38)
ZONED
(DISPLAY con PICTURE numerico)
zoned_decimal 19 ≤ precision ≤ 38 e scale > 0
(o zoned_decimal.logical_type impostato su BIG_DECIMAL)
BigDecimal decimal(p, s)
  • NUMERIC (p ≤ 38 e s ≤ 9)
  • BIGNUMERIC (p > 38 o s > 9)