Tipos de datos de Mainframe Connector

En esta página, se describen todos los tipos de datos que admite Mainframe Connector.

Modificadores de campo universales

Todos los campos de COBOL elementales de cualquier tamaño admiten los siguientes modificadores de campo de transcodificador universales (configurados con defaults, field_suffixes o field_overrides):

  • null_if: Decodifica o codifica NULL según el valor de un campo indicador.
  • null_if_empty: Se decodifica como NULL si todos los bytes del campo son 0x00 (valores bajos); codifica NULL como bytes 0x00.
  • decode_as_null: Se decodifica como NULL si todos los bytes coinciden con un valor hex_bytes configurado (por ejemplo, "40" para espacios de EBCDIC, "00" para valores bajos o "FF" para valores altos) o si el valor decodificado coincide con una lista de values.
  • encode_null_as: Codifica NULL como un hex_byte repetido o un value predeterminado específico.
  • null_if_invalid: Decodifica los datos de campo no válidos como NULL en lugar de enviar el registro rechazado al conjunto de datos de desbordamiento.
  • bytes: Anula el campo para leer y escribir BYTES sin procesar sin decodificación de caracteres.
  • filler: Excluye el campo del esquema de salida decodificado y lo completa con hex_byte (0x40 predeterminado) durante la codificación.
  • chain: Aplica varios modificadores de campo en secuencia.

Tabla de asignación de tipos de datos de COBOL

Tipo de uso de COBOL Modificadores de campo adicionales compatibles Copybook o condición de modificador Tipo lógico Tipo de ORC Tipo de datos de BigQuery
COMP-1, COMP-2
(COMPUTATIONAL-1, COMPUTATIONAL-2)
hfp COMP-1 (precisión simple de 4 bytes) o COMP-2 (precisión doble de 8 bytes) sin cláusula PICTURE, o cualquier campo de 4 u 8 bytes con el modificador hfp. Double double FLOAT64
BINARY, COMP, COMPUTATIONAL, COMP-4, COMP-5 (con firma) binary
format_date
Es el valor predeterminado para los campos binarios o cuando binary.signedness se establece en SIGNED.
Tamaño en bytes por precisión (p):
  • p ≤ 4: 2 bytes
  • 5 ≤ p ≤ 9: 4 bytes
  • 10 ≤ p ≤ 18: 8 bytes
(También admite campos de 1, 2, 4 u 8 bytes con el modificador binary).
Long bigint INT64
BINARY, COMP, COMPUTATIONAL, COMP-4, COMP-5 (sin firmar) binary
format_date
El modificador binary se aplica con signedness establecido en UNSIGNED. Long bigint INT64
DISPLAY (o cualquier campo de tamaño como bytes sin procesar) bytes Cualquier campo con un tamaño de byte estático que tenga aplicado el modificador de campo bytes (a través de field_overrides, field_suffixes o defaults) Bytes binary BYTES
DISPLAY (o campo Long de número entero) como Date format_date
string
Campo de cadena (DISPLAY, DISPLAY-1, NATIONAL, UTF-8) o campo de número entero (tipo lógico Long) con el modificador format_date y una entrada de formato que coincida con la longitud de caracteres del campo (para cadenas) o la precisión de dígitos (para números enteros). Date date DATE
DISPLAY (cadena) como marca de tiempo format_timestamp
string
Campo de cadena con el modificador format_timestamp y una entrada de formato que coincida con el tamaño en bytes del campo. Timestamp timestamp TIMESTAMP
DISPLAY (*) (alfanumérica) string USAGE DISPLAY (o USAGE omitido) con un PICTURE alfanumérico, alfabético o editado alfanumérico (X, A, B, 0, /).
  • Si se omite USAGE y PIC es N, se trata como NATIONAL.
  • Si se omite USAGE y PIC es U, se trata como UTF-8.
String string STRING
DISPLAY-1 (DBCS) string USAGE DISPLAY-1 por PIC G (opcionalmente con B) o PIC N. Cada símbolo ocupa 2 bytes. String string STRING
NATIONAL string USAGE NATIONAL con PIC N (o USAGE omitido con PIC N). Cada símbolo ocupa 2 bytes. String string STRING
UTF-8 string USAGE UTF-8 por PIC U (u omitir USAGE con PIC U). String string STRING
DISPLAY (GROUP) (cadena de longitud variable) varlen Un campo de grupo con el modificador varlen que contiene dos subcampos:
  1. Un subcampo de longitud con el tipo lógico Long (p.ej., BINARY, ZONED o PACKED-DECIMAL con precision ≤ 18 y scale = 0).
  2. Un subcampo de cadena sin modificar (DISPLAY, DISPLAY-1, NATIONAL o UTF-8).
String string STRING
PACKED-DECIMAL
(COMP-3, COMPUTATIONAL-3)
packed_decimal
format_date (cuando Long)
precision ≤ 18 y scale = 0
(o packed_decimal.logical_type establecido en LONG)
Long bigint INT64
PACKED-DECIMAL
(COMP-3, COMPUTATIONAL-3)
packed_decimal precision ≤ 18 y scale > 0
(o packed_decimal.logical_type establecido en DECIMAL64)
Decimal64 decimal(p, s) NUMERIC
PACKED-DECIMAL
(COMP-3, COMPUTATIONAL-3)
packed_decimal 19 ≤ precision ≤ 38 y scale = 0
(o packed_decimal.logical_type establecido en 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 y scale > 0
(o packed_decimal.logical_type establecido en BIG_DECIMAL)
BigDecimal decimal(p, s)
  • NUMERIC (p ≤ 38 y s ≤ 9)
  • BIGNUMERIC (p > 38 u s > 9)
ZONED
(DISPLAY con PICTURE numérico)
zoned_decimal
format_date
precision ≤ 18 y scale = 0
(o zoned_decimal.logical_type establecido en LONG)
Long bigint INT64
ZONED
(DISPLAY con PICTURE numérico)
zoned_decimal precision ≤ 18 y scale > 0
(o zoned_decimal.logical_type establecido en DECIMAL64)
Decimal64 decimal(p, s) NUMERIC
ZONED
(DISPLAY con PICTURE numérico)
zoned_decimal 19 ≤ precision ≤ 38 y scale = 0
(o zoned_decimal.logical_type establecido en BIG_INTEGER)
BigInteger decimal(38, 0)
  • INT64 (p = 19)
  • NUMERIC (20 ≤ p ≤ 38)
  • BIGNUMERIC (p > 38)
ZONED
(DISPLAY con PICTURE numérico)
zoned_decimal 19 ≤ precision ≤ 38 y scale > 0
(o zoned_decimal.logical_type establecido en BIG_DECIMAL)
BigDecimal decimal(p, s)
  • NUMERIC (p ≤ 38 y s ≤ 9)
  • BIGNUMERIC (p > 38 u s > 9)