Datentypen für Mainframe Connector

Auf dieser Seite werden alle Datentypen beschrieben, die von Mainframe Connector unterstützt werden.

Universelle Feldmodifikatoren

Alle elementaren COBOL-Felder mit Größenangabe unterstützen die folgenden universellen Transcoder-Feldmodifikatoren (konfiguriert mit defaults, field_suffixes oder field_overrides):

  • null_if: Decodiert oder codiert NULL basierend auf dem Wert eines Indikatorfelds.
  • null_if_empty: Wird als NULL decodiert, wenn alle Byte im Feld 0x00 (niedrige Werte) sind. Codiert NULL als 0x00-Byte.
  • decode_as_null: Wird als NULL decodiert, wenn alle Byte mit einem konfigurierten hex_bytes-Wert übereinstimmen (z. B. "40" für EBCDIC-Leerzeichen, "00" für niedrige Werte oder "FF" für hohe Werte) oder wenn der decodierte Wert mit einer Liste von values übereinstimmt.
  • encode_null_as: Codiert NULL als wiederholtes hex_byte oder als spezifischen Standardwert value.
  • null_if_invalid: Decodiert ungültige Felddaten als NULL, anstatt den abgelehnten Datensatz an das Überlauf-Dataset zu senden.
  • bytes: Überschreibt das Feld, um Roh-BYTES ohne Zeichendecodierung zu lesen und zu schreiben.
  • filler: Schließt das Feld aus dem decodierten Ausgabeschema aus und füllt es während der Codierung mit hex_byte (Standard: 0x40).
  • chain: Wendet mehrere Feldmodifikatoren nacheinander an.

COBOL-Datentypzuordnungstabelle

COBOL-Nutzungstyp Zusätzliche unterstützte Feldmodifikatoren Copybook- oder Modifikatorbedingung Logischer Typ ORC-Typ BigQuery-Datentyp
COMP-1, COMP-2
(COMPUTATIONAL-1, COMPUTATIONAL-2)
hfp COMP-1 (4-Byte-Gleitkommazahl mit einfacher Genauigkeit) oder COMP-2 (8-Byte-Gleitkommazahl mit doppelter Genauigkeit) ohne PICTURE-Klausel oder ein beliebiges 4- oder 8-Byte-Feld mit dem hfp-Modifikator. Double double FLOAT64
BINARY, COMP, COMPUTATIONAL, COMP-4, COMP-5 (signiert) binary
format_date
Standard für Binärfelder oder wenn binary.signedness auf SIGNED gesetzt ist.
Bytegröße nach Genauigkeit (p):
  • p ≤ 4: 2 Byte
  • 5 ≤ p ≤ 9: 4 Byte
  • 10 ≤ p ≤ 18: 8 Byte
(Unterstützt auch 1-, 2-, 4- oder 8-Byte-Felder mit dem Modifikator binary.)
Long bigint INT64
BINARY, COMP, COMPUTATIONAL, COMP-4, COMP-5 (ohne Vorzeichen) binary
format_date
Der Modifikator binary wird angewendet, wobei signedness auf UNSIGNED festgelegt ist. Long bigint INT64
DISPLAY (oder ein beliebig großes Feld als Rohbyte) bytes Jedes Feld mit einer statischen Bytegröße, auf das der Feldmodifikator bytes angewendet wurde (über field_overrides, field_suffixes oder defaults). Bytes binary BYTES
DISPLAY (oder Ganzzahlfeld Long) als Datum format_date
string
Stringfeld (DISPLAY, DISPLAY-1, NATIONAL, UTF-8) oder Ganzzahlfeld (logischer Typ Long) mit dem Modifikator format_date und einem Formateintrag, der der Zeichenlänge des Felds (für Strings) oder der Zifferngenauigkeit (für Ganzzahlen) entspricht. Date date DATE
DISPLAY (String) als Zeitstempel format_timestamp
string
Stringfeld mit dem Modifikator format_timestamp und einem Formateintrag, der der Byte-Größe des Felds entspricht. Timestamp timestamp TIMESTAMP
DISPLAY (*) (alphanumerisch) string USAGE DISPLAY (oder ausgelassenes USAGE) mit einem alphanumerischen, alphabetischen oder alphanumerisch bearbeiteten PICTURE (X, A, B, 0, /).
  • Wenn USAGE weggelassen wird und PIC den Wert N hat, wird es als NATIONAL behandelt.
  • Wenn USAGE weggelassen wird und PIC den Wert U hat, wird es als UTF-8 behandelt.
String string STRING
DISPLAY-1 (DBCS) string USAGE DISPLAY-1 durch PIC G (optional mit B) oder PIC N. Jedes Symbol belegt 2 Byte. String string STRING
NATIONAL string USAGE NATIONAL mit PIC N (oder weggelassenes USAGE mit PIC N). Jedes Symbol belegt 2 Byte. String string STRING
UTF-8 string USAGE UTF-8 durch PIC U (oder weggelassenes USAGE durch PIC U). String string STRING
DISPLAY (GROUP) (String mit variabler Länge) varlen Ein Gruppenfeld mit dem Modifikator varlen, das zwei untergeordnete Felder enthält:
  1. Ein Unterfeld für die Länge mit dem logischen Typ Long (z.B. BINARY, ZONED oder PACKED-DECIMAL mit precision ≤ 18 und scale = 0).
  2. Ein unverändertes String-Unterfeld (DISPLAY, DISPLAY-1, NATIONAL oder UTF-8).
String string STRING
PACKED-DECIMAL
(COMP-3, COMPUTATIONAL-3)
packed_decimal
format_date (wenn Long)
precision ≤ 18 und scale = 0
(oder packed_decimal.logical_type auf LONG festgelegt)
Long bigint INT64
PACKED-DECIMAL
(COMP-3, COMPUTATIONAL-3)
packed_decimal precision ≤ 18 und scale > 0
(oder packed_decimal.logical_type auf DECIMAL64 festgelegt)
Decimal64 decimal(p, s) NUMERIC
PACKED-DECIMAL
(COMP-3, COMPUTATIONAL-3)
packed_decimal 19 ≤ precision ≤ 38 und scale = 0
(oder packed_decimal.logical_type auf BIG_INTEGER festgelegt)
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 und scale > 0
(oder packed_decimal.logical_type auf BIG_DECIMAL festgelegt)
BigDecimal decimal(p, s)
  • NUMERIC (p ≤ 38 und s ≤ 9)
  • BIGNUMERIC (p > 38 oder s > 9)
ZONED
(DISPLAY mit numerischem PICTURE)
zoned_decimal
format_date
precision ≤ 18 und scale = 0
(oder zoned_decimal.logical_type auf LONG festgelegt)
Long bigint INT64
ZONED
(DISPLAY mit numerischem PICTURE)
zoned_decimal precision ≤ 18 und scale > 0
(oder zoned_decimal.logical_type auf DECIMAL64 festgelegt)
Decimal64 decimal(p, s) NUMERIC
ZONED
(DISPLAY mit numerischem PICTURE)
zoned_decimal 19 ≤ precision ≤ 38 und scale = 0
(oder zoned_decimal.logical_type auf BIG_INTEGER festgelegt)
BigInteger decimal(38, 0)
  • INT64 (p = 19)
  • NUMERIC (20 ≤ p ≤ 38)
  • BIGNUMERIC (p > 38)
ZONED
(DISPLAY mit numerischem PICTURE)
zoned_decimal 19 ≤ precision ≤ 38 und scale > 0
(oder zoned_decimal.logical_type auf BIG_DECIMAL festgelegt)
BigDecimal decimal(p, s)
  • NUMERIC (p ≤ 38 und s ≤ 9)
  • BIGNUMERIC (p > 38 oder s > 9)