Transcoder-Konfiguration

Sie können den Mainframe Connector-Transcoder konfigurieren, indem Sie die erforderliche Konfiguration in einer JSON-Datei hinzufügen. Diese Datei wird als Transcoder-Konfigurationsdatei bezeichnet. Sie müssen die Konfiguration wie im Abschnitt Konfiguration beschrieben definieren. Die Befehle qsam encode und qsam decode verwenden die Transcoder-Konfigurationsdatei, um die Datentranscodierung durchzuführen.

Auf dieser Seite werden die verschiedenen Möglichkeiten zur Konfiguration des Mainframe Connector-Transcoders beschrieben.

Konfiguration

Das Configuration-Objekt ist die Wurzel der Transcoder-Konfiguration. Sie enthält alle Konfigurationsoptionen für den Transcoder.

JSON-Darstellung
{
    "defaults": object (DefaultsSection),
    "field_suffixes": object (FieldSuffix),
    "field_overrides": object (FieldOverride),
    "transformations": object (Transformation),
    "schema_validation_mode": enum (SchemaValidationMode),
    "header_records_to_skip": long,
    "record_filter_condition": string
}
Felder
defaults

object (DefaultsSection)

Geben Sie Standardfeldmodifizierer für COBOL-Archetypen an.

field_suffixes

object (FieldSuffix)

Geben Sie Feldsuffixe an.

field_overrides

object (FieldOverride)

Geben Sie Feldüberschreibungen an.

transformations

object (Transformation)

Geben Sie Feldtransformationen an.

schema_validation_mode

enum (SchemaValidationMode)

Geben Sie den Modus für die Schemavalidierung an.

header_records_to_skip

long

Geben Sie die Anzahl der ersten Datensätze an, die übersprungen werden sollen.

record_filter_condition

string

Geben Sie eine Filterbedingung für Datensätze an.

Der Filter unterstützt die folgenden Operatoren:

  • Vergleichsoperatoren: `==`, `!=`, `<`, `<=`, `>`, `>=`.
  • Logische Operatoren: `&&` (AND), `||` (OR).
  • Listeneinschluss: `in` (zum Prüfen, ob ein Wert in einer Listenvariable vorhanden ist).
  • Arithmetische Operatoren: `+`, `-`, `*`, `/`, `%`.
  • String- und Listenfunktionen:
    • size(): Gibt die Länge eines Strings oder einer Liste zurück.
    • contains(substring): Prüft, ob ein String einen angegebenen Teilstring enthält.
Vergleiche und Vorgänge müssen zwischen Variablen oder Konstanten desselben Datentyps ausgeführt werden.

Beispiel:

"record_filter_condition": "(DATE > '2025-01-12' ) && ((SCORE_A + SCORE_B) > 134)

DefaultsSection

Mit dem DefaultsSection-Objekt können Sie Standardänderungen nach COBOL-Typen angeben. Sie werden vor allen Suffix- oder Überschreibungsänderungen angewendet.

JSON-Darstellung
{
    "alpha_numeric_display": object (FieldModifier),
    "numeric_display": object (FieldModifier),
    "binary": object (FieldModifier),
    "packed_decimal": object (FieldModifier),
    "national": object (FieldModifier),
    "utf8": object (FieldModifier),
    "dbcs": object (FieldModifier),
    "hexadecimal_floating_point": object (FieldModifier)
}
Felder
alpha_numeric_display

object (FieldModifier)

Geben Sie Standardwerte für alphanumerische Felder (PIC X) an.

numeric_display

object (FieldModifier)

Geben Sie Standardwerte für numerische Felder (Zonendekimalfelder) an.

binary

object (FieldModifier)

Geben Sie Standardwerte für Felder mit binären Zahlen (COMP) an.

packed_decimal

object (FieldModifier)

Geben Sie Standardwerte für gepackte Dezimalfelder (COMP-3) an.

national

object (FieldModifier)

Geben Sie Standardwerte für nationale (PIC N) Felder an.

utf8

object (FieldModifier)

Geben Sie Standardwerte für UTF-8-Felder (PIC U) an.

dbcs

object (FieldModifier)

Standardwert für DBCS-Felder (DISPLAY-1).

hexadecimal_floating_point

object (FieldModifier)

Standardwert für Felder mit hexadezimaler Gleitkommazahl (COMP-1, COMP-2).

FieldSuffix

Feld-Suffixe gelten für alle Felder mit einem Suffix.

Felder werden abgeglichen, wenn sie mit einem Bindestrich (-) oder Unterstrich (_) gefolgt vom Suffix enden.

Bei Suffixen wird die Groß-/Kleinschreibung nicht berücksichtigt.

Der Modifikator FieldSuffix wird nach dem Modifikator FieldOverride angewendet.

Beispielsweise wird der für das Suffix NID definierte Modifikator auf das Feld mit dem Namen FLD-NID angewendet, nicht aber auf das Feld FUNID.

JSON-Darstellung
{
    "suffix": string,
    "is_inverse": boolean,
    "modifier": object (FieldModifier)
}
Felder
suffix

string

Auf das Feld mit diesem Suffix wird der Modifikator angewendet.

is_inverse

boolean

Geben Sie an, ob der Modifikator ein inverser Feldmodifikator ist oder nicht. Ein inverser Feldmodifikator wendet den Modifikator auf ein anderes Feld an, das denselben Namen wie das Feld mit dem Modifikator ohne den Modifikator hat. Wenn beispielsweise sowohl das Feld FLD-NID als auch das Feld FLD im selben Datensatz vorhanden sind, wird der Modifikator auf FLD angewendet.

Bei Verwendung eines inversen Feldmodifikators kann die spezielle Kennung $self immer dann verwendet werden, wenn ein Feldname traditionell verwendet werden kann, um auf das Feld mit dem Suffix zu verweisen.

Wenn Sie beispielsweise ein Feld für Nullindikatoren erstellen möchten, können Sie den Feldmodifikator null_if verwenden und is_inverse auf true festlegen. Weitere Informationen finden Sie unter NullIf.

modifier

object (FieldModifier)

Geben Sie den Modifikator an, der auf übereinstimmende Felder angewendet werden soll.

FieldOverride

Überschreiben oder ändern Sie die Decodierungs- und Codierungskette für das angegebene Feld.

JSON-Darstellung
{
    "field": string,
    "modifier": object (FieldModifier)
}
Felder
field

string

Geben Sie den Namen des Felds an, auf das der Modifikator angewendet werden soll.

modifier

object (FieldModifier)

Geben Sie den Modifikator an, der auf das übereinstimmende Feld angewendet werden soll.

Transformation

Mit Ansichtstransformationen wird die Beziehung zwischen der Tabelle und der QSAM-Datei geändert. Transformationen werden immer aus der Sicht der Daten formuliert. Das Konzept ähnelt Ansichtstabellen in BigQuery.

JSON-Darstellung
{
    "exclude": object (Exclude),
    "unnest": object (Unnest),
    "move": object (Move),
    "rename": object (Rename)
}
Felder
exclude

object (Exclude)

unnest

object (Unnest)

move

object (Move)

rename

object (Rename)

FieldModifier

Mit einem Feldmodifikator können Sie die Codierung oder Decodierung eines bestimmten Felds ändern. Hinweis: Nicht alle Modifikatoren können auf alle Felder angewendet werden. Weitere Informationen finden Sie in der Dokumentation zu den jeweiligen Modifikatoren.

JSON-Darstellung
{
    "filler": object (Filler),
    "null_if": object (NullIf),
    "format_date": object (FormatDate),
    "chain": object (ModifierChain),
    "zoned_decimal": object (ZonedDecimal),
    "binary": object (Binary),
    "packed_decimal": object (PackedDecimal),
    "null_if_invalid": object (NullIfInvalid),
    "bytes": object (Bytes),
    "varlen": object (VarLen),
    "string": object (String),
    "null_if_empty": object (NullIfEmpty),
    "format_timestamp": object (FormatTimestamp),
    "hfp": object (HFP),
    "decode_as_null": object (DecodeAsNull),
    "encode_null_as": object (EncodeNullAs)
}
Felder
filler

object (Filler)

Schließt das Feld aus der Verarbeitung und Ausgabe aus.

null_if

object (NullIf)

Legt das Feld basierend auf dem Wert eines anderen Felds bedingt auf „null“ fest.

format_date

object (FormatDate)

Formatiert ein Stringfeld als Datum.

chain

object (ModifierChain)

Verkettet mehrere Modifizierer, die nacheinander angewendet werden sollen.

zoned_decimal

object (ZonedDecimal)

Überschreibt die Standardkonfiguration für Felder mit zonierten Dezimalzahlen.

binary

object (Binary)

Überschreibt die Standardkonfiguration für binäre numerische Felder.

packed_decimal

object (PackedDecimal)

Überschreibt die Standardkonfiguration für gepackte Dezimalfelder.

null_if_invalid

object (NullIfInvalid)

Setzt das Feld auf „null“, wenn ein Transcodierungsfehler auftritt, um ein Überschreiben von Datensätzen zu verhindern.

bytes

object (Bytes)

Das Feld wird als Rohfolge von Byte behandelt, wobei vorherige Typinformationen ignoriert werden.

varlen

object (VarLen)

Legen Sie den Datensatz als Feld mit variabler Länge fest.

string

object (String)

Überschreibt die Standardkonfiguration für Stringfelder.

null_if_empty

object (NullIfEmpty)

Setzt das Feld auf „null“, wenn sein Inhalt als leer betrachtet wird.

format_timestamp

object (FormatTimestamp)

Formatiert ein Stringfeld als Zeitstempel.

hfp

object (HFP)

Das Feld wird als HFP-Zahl (Hexadecimal Floating-Point) interpretiert.

decode_as_null

object (DecodeAsNull)

Definiert, wie Nullwerte decodiert werden müssen.

encode_null_as

object (EncodeNullAs)

Definiert, wie Nullwerte codiert werden müssen.

Ausschließen

Ein Feld aus der resultierenden Tabelle ausschließen, aber trotzdem decodieren oder codieren. Das ist nützlich, wenn das Feld nicht in die Tabelle übertragen werden muss, aber für die Transcodierung erforderlich ist. So können beispielsweise Nullindikatoren oder Längenfelder aus der Tabelle entfernt werden.

Wenn Sie die Transcodierung ganz umgehen möchten, wenden Sie den Filler-Modifikator an.

JSON-Darstellung
{
    "field": string
}
Felder
field

string

Geben Sie das Feld an, das ausgeschlossen werden soll.

Unnest

Heben Sie die Verschachtelung des Felds auf.

JSON-Darstellung
{
    "field": string,
    "format": string
}
Felder
field

string

Feld für die Entschachtelung angeben

format

string

Geben Sie das neue Feldformat an.

Die ${parent} wird mit dem Namen des Felds veröffentlicht, das nicht mehr verschachtelt ist.

Bei nicht verschachtelten Structs wird ${field} durch den Namen des Struct-Felds ersetzt.

Bei nicht verschachtelten Arrays und Listen wird ${index} durch die Indexe des Arrays ersetzt.

Verschieben

Verschieben Sie ein Feld im Datensatz.

JSON-Darstellung
{
    "field": string,
    "offset": int
}
Felder
field

string

Geben Sie das Feld an, das verschoben werden soll.

offset

int

Geben Sie an, um wie viele Stellen das Feld vorwärts oder rückwärts verschoben werden soll.

Umbenennen

Benennt ein oder mehrere Felder basierend auf einem Abgleich mit einem regulären Ausdruck um.

Wenn Sie beispielsweise alle Bindestriche durch Unterstriche ersetzen möchten, verwenden Sie das folgende JSON-Format: {"find": "\\-", "replace":"_"}.

JSON-Darstellung
{
    "find": string,
    "replace": string
}
Felder
find

string

Gibt ein Muster für reguläre Java-Ausdrücke an, um die umzubenennenden Felder zu identifizieren.

Das Muster wird mit dem vollständigen Feldnamen abgeglichen. Wenn das Muster mit einem Teil des Feldnamens übereinstimmt, gilt das Feld als Übereinstimmung.

Beispiele:

  • "\\-" (entspricht jedem Feld, das einen Bindestrich enthält)
  • "^field_name$" (entspricht Feldern mit dem genauen Namen field_name)
  • "^field_(.*)$" (entspricht allen Feldern, die mit field_ beginnen, und erfasst den Rest)
  • "part_of_name" (entspricht jedem Feld, das part_of_name enthält)

replace

string

Gibt den neuen Namen für die abgeglichenen Felder an.

Erfassungsgruppen aus dem regulären Ausdruck find können im String replace mit Rückverweisen wie $1, $2 verwendet werden. Dies ermöglicht komplexere Transformationen basierend auf Teilen des ursprünglichen Feldnamens.

Beispiele:

  • "new_field_name" (ersetzt das Feld durch einen festen Namen)
  • "new_$1" (verwendet die erste Erfassungsgruppe aus find)
  • "${1}_new" (alternative Syntax für Erfassungsgruppen)
  • "prefix_$1_suffix" (verwendet eine Erfassungsgruppe und fügt Präfixe/Suffixe hinzu)

Füllstoff

Gibt an, dass ein Feld während der Verarbeitung ignoriert wird. Das Feld wird nicht aus der Eingabe decodiert oder in die Ausgabe codiert und wird beim Decodieren aus dem resultierenden Schema und der Datentabelle ausgeschlossen. Sie können diesen Modifikator auf jedes Feld anwenden, das eine statische bekannte Größe hat.

Geben Sie ein leeres JSON-Objekt an:

JSON-Darstellung
{
}

NullIf

Setzen Sie ein Feld auf „null“, wenn eine Bedingung erfüllt ist. Sie müssen entweder null_value oder non_null_value oder beides angeben.

Um ein Nullindikatorfeld zu erstellen, können Sie eine FieldSuffix mit dem Feldmodifikator null_if verwenden und is_inverse auf true festlegen, wie in den folgenden Beispielen gezeigt:

Beispiel: Null-Indikator

Um ein Nullindikatorfeld zu erstellen, können wir den Feldmodifikator null_if so verwenden.

 {
  "field_suffixes": [
   {
     "suffix": "NID",
     "is_inverse": true,
     "modifier": {
     "null_if": {
       "null_value": "?",
       "target_field": "$self"
     }
    }
   }
  ]
 }

So können alle Felder mit dem Suffix NID effektiv als Nullindikatoren verwendet werden, wie im folgenden Copybook-Snippet zu sehen ist:

 01 REC.
   02 FIELD     PIC X(10).
   02 FIELD-NID PIC X(1).

Beispiel: Binärer Nullindikator

Um ein binary-Nullindikatorfeld zu erstellen, können wir die Feldmodifizierer binary und null_if so verwenden.

 {
  "field_suffixes": [
   {
     "suffix": "NID",
     "modifier": {
       "binary": {}
     }
   },
   {
     "suffix": "NID",
     "is_inverse": true,
     "modifier": {
     "null_if": {
       "null_value": "15",
       "target_field": "$self"
     }
    }
   }
  ]
 }

Dadurch können alle Felder mit dem Suffix NID effektiv binary-Nullindikatoren sein, wenn dasselbe Copybook wie im vorherigen Beispiel verwendet wird.

Beispiel: Null-Indikator für Byte

Um ein bytes-Nullwertindikatorfeld zu erstellen, können wir die Feldmodifizierer bytes und null_if so verwenden. Die Werte für „null“ und „nicht null“ werden als HEX ausgedrückt.

 {
  "field_suffixes": [
   {
     "suffix": "NID",
     "modifier": {
       "bytes": {}
     }
   },
   {
     "suffix": "NID",
     "is_inverse": true,
     "modifier": {
     "null_if": {
       "null_value": "FF",
       "target_field": "$self"
     }
    }
   }
  ]
 }

Dadurch können alle Felder mit dem Suffix NID effektiv als bytes-Nullindikator mit demselben Copybook aus dem vorherigen Beispiel verwendet werden.

JSON-Darstellung
{
    "target_field": string,
    "null_value": string,
    "null_values": string,
    "non_null_value": string,
    "non_null_values": string
}
Felder
target_field

string

Geben Sie das Feld an, dessen Wert Sie prüfen möchten. Das Feld muss im Bereich liegen.

null_value

string

Wenn angegeben und target_field gleich diesem Wert ist, wird das Feld nicht decodiert oder codiert und der Wert wird auf „null“ gesetzt.

null_values

string

Wenn target_field einem dieser Werte entspricht, wird das Feld nicht decodiert oder codiert und der Wert wird auf „null“ gesetzt.

non_null_value

string

Wenn angegeben und target_field nicht gleich diesem Wert ist, wird das Feld nicht decodiert oder codiert und der Wert wird auf „null“ gesetzt.

non_null_values

string

Wenn angegeben und target_field nicht einem dieser Werte entspricht, wird das Feld nicht decodiert oder codiert und der Wert wird auf „null“ gesetzt.

FormatDate

Formatieren Sie einen String in ein Datum mit einem der unterstützten Formate. Sie können diesen Modifikator nur auf Felder mit Größenangaben anwenden. Beim Decodieren werden die Formate in der Reihenfolge getestet, bis eines der Formate mit dem String übereinstimmt. Bei der Codierung wird das erste Format verwendet und die anderen werden ignoriert.

JSON-Darstellung
{
    "formats": object (DateTimeFormat)
}
Felder
formats

object (DateTimeFormat)

Liste der Datumsformate.

ModifierChain

Geben Sie eine Modifikatorfolge an, um mehrere Modifikatoren nacheinander anzuwenden. Die Modifikatoren werden in der Reihenfolge angewendet, in der sie angegeben sind.

JSON-Darstellung
{
    "modifiers": object (FieldModifier)
}
Felder
modifiers

object (FieldModifier)

Geben Sie die Liste der anzuwendenden Modifikatoren an.

ZonedDecimal

Legt verschiedene Optionen für die Codierung und Decodierung von Zonen-Dezimalzahlen fest. Sie können diesen Modifikator nur auf ein Dezimalfeld anwenden.

JSON-Darstellung
{
    "logical_type": enum (DecimalLogicalType),
    "encoding": enum (ZonedDecimalEncoding)
}
Felder
logical_type

enum (DecimalLogicalType)

Geben Sie den logischen Typ an, der beim Decodieren oder Codieren des Felds verwendet werden soll.

encoding

enum (ZonedDecimalEncoding)

Die Codierung, mit der das Feld codiert wird.

Binär

Ignorieren Sie alle vorherigen Modifikatoren und behandeln Sie dieses Feld als Binärzahl.

JSON-Darstellung
{
    "signedness": enum (BinarySignedness)
}
Felder
signedness

enum (BinarySignedness)

Das Vorzeichen der Zahl.

PackedDecimal

Legen Sie für dieses Feld einen PackedDecimal-Wert fest.

JSON-Darstellung
{
    "logical_type": enum (DecimalLogicalType)
}
Felder
logical_type

enum (DecimalLogicalType)

Logischen Typ überschreiben Standardmäßig verwendet Mainframe Connector den optimalen logischen Typ basierend auf der Genauigkeit und Skalierung.

NullIfInvalid

Behandeln Sie den Wert als null, wenn die Transcodierung fehlschlägt. Sie können diesen Modifikator nur auf Felder mit Größenangaben anwenden. Der Fehler wird ignoriert und nicht im Spillover-Dataset protokolliert. Während der Dekodierung ist der Wert dieses Felds für diesen Datensatz „null“. Wenn die Daten während der Codierung nicht geschrieben werden können, wird das gesamte Feld mit Null-Bytes gefüllt.

Geben Sie ein leeres JSON-Objekt an:

JSON-Darstellung
{
}

Byte

Behandelt das Feld als rohe Bytefolge. Dieser Modifikator überschreibt alle vorherigen Typinformationen. Die Rohbytedaten des Felds werden unverändert beibehalten, ohne dass eine bestimmte Zeichencodierung oder numerische Interpretation erfolgt. Sie können diesen Modifikator auf jedes Feld anwenden, unabhängig von seinem ursprünglichen Typ oder seiner Größe.

Geben Sie ein leeres JSON-Objekt an:

JSON-Darstellung
{
}

VarLen

Stellt ein Feld mit variabler Länge dar.

Ein Feld mit variabler Länge besteht aus drei Teilen:

  1. Ein Gruppenelement mit zwei Unterfeldern.
  2. Ein Feld innerhalb des Gruppenelements, das die Länge der Transaktionsdaten enthält.
  3. Ein Feld innerhalb des Gruppenelements, das die Daten enthält.

Der Name des Felds mit variabler Länge ist der Gruppenname.

Geben Sie ein leeres JSON-Objekt an:

JSON-Darstellung
{
}

String

Legt die verschiedenen Optionen für die String-Decodierung und -Codierung fest. Kann nur auf ein Stringfeld angewendet werden.

JSON-Darstellung
{
    "encoding": string,
    "trim_suffix": boolean,
    "pad_char": string
}
Felder
encoding

string

Die Codierung, mit der das Feld codiert wird.

trim_suffix

boolean

Wenn „true“ festgelegt ist, wird Leerraum am Ende des Strings entfernt. trim_suffix wirkt sich nur auf die Decodierung aus. Bei der Codierung wird trim_suffix ignoriert. Strings, die nur aus Leerzeichen bestehen, werden zu leeren Strings.

pad_char

string

Wenn festgelegt, werden Exportstrings mit pad_char aufgefüllt. Wenn dieser Wert festgelegt wird, muss die Länge von pad_char 1 betragen. pad_char wirkt sich nur auf die Codierung aus. Bei der Decodierung wird pad_char ignoriert.

NullIfEmpty

Das Feld sollte auf „null“ gesetzt werden, wenn alle Bytes in diesem Feld 0 sind.

Geben Sie ein leeres JSON-Objekt an:

JSON-Darstellung
{
}

FormatTimestamp

Formatieren Sie einen String mit einem der bereitgestellten Formate in einen Zeitstempel. Dies kann nur auf Felder mit Größenangaben angewendet werden. Bei der Decodierung werden die Formate in der angegebenen Reihenfolge getestet, bis eines der Formate mit dem String übereinstimmt. Bei der Codierung wird das erste Format verwendet und die anderen werden ignoriert.

JSON-Darstellung
{
    "formats": object (DateTimeFormat)
}
Felder
formats

object (DateTimeFormat)

Liste der Zeitstempelformate.

HFP

Legen Sie für dieses Feld „Hexadezimaler Gleitkommawert“ fest.

Geben Sie ein leeres JSON-Objekt an:

JSON-Darstellung
{
}

DecodeAsNull

Definiert, wie Nullwerte während des Decodierungsprozesses interpretiert werden. Da COBOL keine Nullwerte unterstützt, wird mit diesem Parameter angegeben, welche Werte als Nullwerte behandelt werden müssen.

JSON-Darstellung
{
    "values": string,
    "hex_bytes": string
}
Felder
values

string

Eine Liste von Stringdarstellungen. Nach der ersten Decodierung des Felds in seine Stringform wird es als „null“ behandelt, wenn der Inhalt des Felds mit einem dieser Werte übereinstimmt.

hex_bytes

string

Eine Liste der hexadezimalen Darstellungen eines einzelnen Byte. Wenn ein Feld Wiederholungen eines dieser Bytes enthält, wird es als „null“ behandelt. Verwenden Sie beispielsweise FF für alle Höchstwerte und 00 für alle Tiefstwerte (leer).

EncodeNullAs

Definiert, wie Nullwerte während des Codierungsprozesses dargestellt werden.

JSON-Darstellung
{
    "value": string,
    "hex_byte": string
}
Felder
value

string

Diesen Wert codieren, wenn der Quellwert null ist. Prüfen Sie, ob der String für den Typ des Felds gültig ist.

hex_byte

string

Codieren Sie diese bestimmte Bytefolge (als hexadezimaler String dargestellt), wenn der Quellwert null ist. Beispiel: FF für ein 2‑Byte-Feld mit hohen Werten. Sie können dies auf jedes Feld mit einer bekannten Größe anwenden. Die Bytes werden wiederholt, um der Größe des zugrunde liegenden Felds zu entsprechen.

DateTimeFormat

Größe und Muster, die beim Konvertieren des Felds in ein Datum verwendet werden sollen.

JSON-Darstellung
{
    "size": int,
    "pattern": string
}
Felder
size

int

Geben Sie die Größe des Felds an, auf das dieses Muster angewendet wird.

pattern

string

Geben Sie das Muster für die Datumsformatierung an. Weitere Informationen zu gültigen Formatierungsmustern finden Sie unter DateTimeFormatter-Klasse.

ZonedDecimalEncoding

Geben Sie die Codierung an, die beim Decodieren oder Codieren eines zonierten Dezimalfelds verwendet werden soll.

Enums
UNSPECIFIED Behalten Sie die in der Modifier-Kette angegebene Codierung bei. Wenn kein Modifikator angegeben ist, wird EBCDIC verwendet.
EBCDIC Verwenden Sie die EBCDIC-Codierung.
ASCII Verwenden Sie die ASCII-Codierung.

BinarySignedness

Der logische Typ, der für ein Dezimalfeld verwendet werden soll.

Enums
UNSPECIFIED Wählen Sie den optimalen Typ basierend auf dem Maßstab und der Genauigkeit aus.
SIGNED Verwenden Sie 64 Bits zum Speichern des Werts. Dieser Modifikator funktioniert nur für Zahlen, deren Genauigkeit kleiner oder gleich 18 und deren Skalierung 0 ist.
UNSIGNED Verwenden Sie 64 Bits zum Speichern des Werts. Dieser Modifikator funktioniert nur für Zahlen, deren Genauigkeit kleiner oder gleich 18 ist.

DecimalLogicalType

Der logische Typ, der für ein Dezimalfeld verwendet werden soll.

Enums
AUTO Wählen Sie den optimalen Typ basierend auf dem Maßstab und der Genauigkeit aus.
LONG Verwenden Sie 64 Bits zum Speichern des Werts. Dieser Modifikator funktioniert nur für Zahlen, deren Genauigkeit kleiner oder gleich 18 und deren Skalierung 0 ist.
DECIMAL64 Verwenden Sie 64 Bits zum Speichern des Werts. Dieser Modifikator funktioniert nur für Zahlen, deren Genauigkeit kleiner oder gleich 18 ist.
BIG_DECIMAL Speichern Sie den Wert als unbegrenzten Dezimalwert. Das ist die langsamste Option, unterstützt aber jede Dezimalzahl mit beliebiger Genauigkeit in jedem Maßstab.
BIG_INTEGER Speichern Sie den Wert als unbegrenzten Ganzzahlwert. Das ist die langsamste Option, unterstützt aber jede Ganzzahl mit beliebiger Genauigkeit.

SchemaValidationMode

Geben Sie den Modus für die Schemavalidierung an, der während der Copybook-Kompilierung verwendet werden soll. In diesem Modus wird die Kompatibilität mit einem bestimmten Zieldatenformat geprüft.

Enums
DEFAULT Standardmodus für die Schemavalidierung. In diesem Modus wird geprüft, ob eindeutige Feldnamen im Copybook vorhanden sind.
BIG_QUERY Schema-Validierungsmodus für BigQuery-Kompatibilität. In diesem Modus wird die Standardvalidierung erweitert, um zu prüfen, ob das Schema des Copybooks mit den Datentypen von BigQuery kompatibel ist.
POSTGRES Schema-Validierungsmodus für PostgreSQL-Kompatibilität. In diesem Modus wird die Standardvalidierung erweitert, um zu prüfen, ob das Schema des Copybooks mit PostgreSQL-Datentypen kompatibel ist.
MYSQL Schema-Validierungsmodus für MySQL-Kompatibilität. In diesem Modus wird die Standardvalidierung erweitert, um zu prüfen, ob das Schema des Copybooks mit MySQL-Datentypen kompatibel ist.