Configuração do transcodificador

É possível configurar o transcodificador do Mainframe Connector adicionando a configuração necessária em um arquivo JSON. Esse arquivo é chamado de arquivo de configuração do transcodificador. Defina a configuração conforme especificado na seção Configuração. Os comandos qsam encode e qsam decode usam o arquivo de configuração do transcodificador para realizar a transcodificação de dados.

Nesta página, descrevemos as várias maneiras de configurar o transcodificador do Mainframe Connector.

Configuração

O objeto Configuration é a raiz da configuração do transcodificador. Ele contém todas as opções de configuração do transcodificador.

Representação JSON
{
    "defaults": object (DefaultsSection),
    "field_overrides": object (FieldOverride),
    "field_suffixes": object (FieldSuffix),
    "header_records_to_skip": long,
    "record_filter_condition": string,
    "schema_validation_mode": enum (SchemaValidationMode),
    "transformations": object (Transformation)
}
Campos
defaults

object (DefaultsSection)

Especifique modificadores de campo padrão para arquétipos do Cobol.

field_overrides

object (FieldOverride)

Especifique substituições de campo.

field_suffixes

object (FieldSuffix)

Especifique sufixos de campo.

header_records_to_skip

long

Especifique o número de primeiros registros a serem ignorados.

record_filter_condition

string

Especifique uma condição de filtro para registros.

O filtro é baseado em um subconjunto da Common Expression Language (CEL) e é compatível com o seguinte:

  • Acesso a campos:os campos podem ser referenciados por nome. Para campos aninhados, use a notação de ponto (por exemplo, PARENT.CHILD).
  • Operadores de comparação:`==`, `!=`, `<`, `<=`, `>`, `>=`.
  • Operadores lógicos:`&&` (AND), `||` (OR), `!` (NOT).
  • Contenção de lista:`in` (verifica se um valor está presente em uma lista).
  • Operadores aritméticos:`+`, `-`, `*`, `/`, `%`.
  • Funções de string e lista:
    • size(): retorna o comprimento de uma string ou lista.
    • contains(substring): verifica se uma string contém uma substring especificada.
    • startsWith(prefix): verifica se uma string começa com um prefixo especificado.
    • endsWith(suffix): verifica se uma string termina com um sufixo especificado.
  • Constantes de data e carimbo de data/hora:
    • date(string): analisa uma data no formato ISO (AAAA-MM-DD). Por exemplo, date('2025-01-12').
    • date(string, format): analisa uma data usando um formato personalizado. Por exemplo, date('12/01/2025', 'dd/MM/yyyy').
    • timestamp(string): analisa um carimbo de data/hora no formato ISO. Por exemplo, timestamp('1999-05-03T02:34:00Z').
As comparações e operações precisam ser realizadas entre variáveis ou constantes do mesmo tipo de dados ou de tipos compatíveis (por exemplo, comparar números de ponto flutuante ou usar constantes de data/carimbo de data/hora para campos de data/carimbo de data/hora).

Exemplo:

"record_filter_condition": "(ACCOUNT-GRP.DATE > date('2025-01-12') ) && ((SCORE_A + SCORE_B) > 134) && FLD-STR.startsWith('HE')"

schema_validation_mode

enum (SchemaValidationMode)

Especifique o modo de validação de esquema.

transformations

object (Transformation)

Especifique transformações de campo.

DefaultsSection

O objeto DefaultsSection pode ser usado para especificar modificações padrão por tipos de Cobol. Elas são aplicadas antes de qualquer sufixo ou modificação de substituição.

Representação JSON
{
    "alpha_numeric_display": object (FieldModifier),
    "binary": object (FieldModifier),
    "dbcs": object (FieldModifier),
    "hexadecimal_floating_point": object (FieldModifier),
    "national": object (FieldModifier),
    "numeric_display": object (FieldModifier),
    "packed_decimal": object (FieldModifier),
    "utf8": object (FieldModifier)
}
Campos
alpha_numeric_display

object (FieldModifier)

Especifique padrões para campos alfanuméricos (PIC X).

binary

object (FieldModifier)

Especifique os padrões para campos de número binário (COMP).

dbcs

object (FieldModifier)

Padrão para campos dbcs (DISPLAY-1).

hexadecimal_floating_point

object (FieldModifier)

Padrão para campos de ponto flutuante hexadecimal (COMP-1, COMP-2).

national

object (FieldModifier)

Especifique os padrões para campos nacionais (PIC N).

numeric_display

object (FieldModifier)

Especifique os padrões para campos de exibição numérica (decimal zonado).

packed_decimal

object (FieldModifier)

Especifique os padrões para campos decimais compactados (COMP-3).

utf8

object (FieldModifier)

Especifique os padrões para campos UTF-8 (PIC U).

FieldModifier

Um modificador de campo permite modificar a codificação ou decodificação de um campo específico. Nem todos os modificadores podem ser aplicados a todos os campos. Consulte a documentação para mais informações sobre os modificadores específicos.

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

object (Binary)

Substitui a configuração padrão para campos numéricos binários.

bytes

object (Bytes)

Trata o campo como uma sequência bruta de bytes, ignorando as informações de tipo de distribuição a priori.

chain

object (ModifierChain)

Encadeia vários modificadores para serem aplicados sequencialmente.

decode_as_null

object (DecodeAsNull)

Define como os valores nulos precisam ser decodificados.

encode_null_as

object (EncodeNullAs)

Define como os valores nulos precisam ser codificados.

filler

object (Filler)

Exclui o campo do processamento e da saída.

format_date

object (FormatDate)

Formata um campo de string como uma data.

format_timestamp

object (FormatTimestamp)

Formata um campo de string como um carimbo de data/hora.

hfp

object (HFP)

Interpreta o campo como um número hexadecimal de ponto flutuante (HFP).

null_if

object (NullIf)

Define condicionalmente o campo como nulo com base no valor de outro campo.

null_if_empty

object (NullIfEmpty)

Define o campo como nulo se o conteúdo for considerado vazio.

null_if_invalid

object (NullIfInvalid)

Define o campo como nulo se ocorrer um erro de transcodificação, evitando o transbordamento de registros.

packed_decimal

object (PackedDecimal)

Substitui a configuração padrão para campos decimais compactados.

string

object (String)

Substitui a configuração padrão dos campos de string.

varlen

object (VarLen)

Defina o registro como um campo de comprimento variável.

zoned_decimal

object (ZonedDecimal)

Substitui a configuração padrão para campos decimais zonados.

Binário

Ignore todos os modificadores anteriores e trate este campo como um número binário.

Representação JSON
{
    "signedness": enum (BinarySignedness)
}
Campos
signedness

enum (BinarySignedness)

O sinal do número.

Bytes

Trata o campo como uma sequência bruta de bytes. Esse modificador substitui qualquer informação de tipo anterior, fazendo com que os dados de bytes brutos do campo sejam preservados sem codificação de caracteres ou interpretação numérica específica. É possível aplicar esse modificador a qualquer campo, independente do tipo ou tamanho original.

Forneça um objeto JSON vazio da seguinte maneira:

Representação JSON
{
}

DecodeAsNull

Define como os valores nulos são interpretados durante o processo de decodificação. Como o COBOL não oferece suporte nativo a valores nulos, esse parâmetro especifica quais valores precisam ser tratados como nulos.

Representação JSON
{
    "hex_bytes": string,
    "values": string
}
Campos
hex_bytes

string

Uma lista de representações hexadecimais de um único byte. Quando um campo contém repetições de qualquer um desses bytes, ele é tratado como nulo. Por exemplo, usando FF para todos os valores altos e 00 para todos os valores baixos (vazio).

values

string

Uma lista de representações de string. Depois da decodificação inicial do campo para a forma de string, se o conteúdo dele corresponder a algum desses valores, ele será tratado como nulo.

EncodeNullAs

Define como os valores nulos são representados durante o processo de codificação.

Representação JSON
{
    "hex_byte": string,
    "value": string
}
Campos
hex_byte

string

Codifique essa sequência de bytes específica (representada como uma string hexadecimal) quando o valor de origem for nulo. Por exemplo, FF para um campo de dois bytes para valores altos. É possível aplicar isso a qualquer campo com um tamanho conhecido. Os bytes são repetidos para corresponder ao tamanho do campo subjacente.

value

string

Codifique esse valor específico quando o valor de origem for nulo. Verifique se a string é válida para o tipo do campo.

Filler

Especifica que um campo será ignorado durante o processamento. O campo não será decodificado da entrada nem codificado para a saída e será excluído do esquema e da tabela de dados resultantes durante a decodificação. É possível aplicar esse modificador a qualquer campo com um tamanho estático conhecido.

Forneça um objeto JSON vazio da seguinte maneira:

Representação JSON
{
}

FormatDate

Formate um campo de string ou numérico para uma data usando um dos formatos aceitos. Só é possível aplicar esse modificador a campos dimensionados. Para campos numéricos, eles são convertidos dinamicamente para a representação de string (excluindo marcadores de sinal) antes da formatação. Os valores de data são considerados positivos. Datas numéricas negativas não são indisponíveis e não serão analisadas. Durante o processo de decodificação, os formatos são testados em ordem até que um deles corresponda à string. Durante o processo de codificação, o primeiro formato é usado, e o restante é ignorado.

Representação JSON
{
    "formats": object (DateTimeFormat)
}
Campos
formats

object (DateTimeFormat)

Lista de formatos de data.

DateTimeFormat

Tamanho e padrão a serem usados ao converter o campo em uma data.

Representação JSON
{
    "pattern": string,
    "size": int
}
Campos
pattern

string

Especifique o padrão do formatador de data. Para mais informações sobre padrões de formatadores válidos, consulte Classe DateTimeFormatter.

size

int

Especifique o tamanho do campo a que esse padrão se aplica.

FormatTimestamp

Formata uma string em um carimbo de data/hora usando um dos formatos fornecidos. Isso só pode ser aplicado a campos dimensionados. Durante a decodificação, os formatos são testados em ordem até que um deles corresponda à string. Durante a codificação, o primeiro formato será usado, e o restante será ignorado.

Representação JSON
{
    "formats": object (DateTimeFormat)
}
Campos
formats

object (DateTimeFormat)

Lista de formatos de carimbo de data/hora.

HFP

Defina esse campo como "Ponto flutuante hexadecimal".

Forneça um objeto JSON vazio da seguinte maneira:

Representação JSON
{
}

ModifierChain

Especifique uma cadeia de modificadores para aplicar vários modificadores em série. Os modificadores são aplicados na ordem em que são especificados.

Representação JSON
{
    "modifiers": object (FieldModifier)
}
Campos
modifiers

object (FieldModifier)

Especifique a lista de modificadores a serem aplicados.

NullIf

Defina um campo como nulo se uma condição for atendida. É necessário especificar null_value, non_null_value ou ambos.

Para criar um campo indicador de nulo, use um FieldSuffix com um modificador de campo null_if e defina is_inverse como true, conforme mostrado nos exemplos a seguir:

Exemplo: indicador nulo

Para criar um campo indicador de nulo, podemos usar o modificador de campo null_if desta forma.

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

Isso permite que todos os campos com o sufixo NID sejam indicadores nulos, conforme mostrado no snippet de livro de cópias a seguir:

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

Exemplo: indicador binário nulo

Para criar um campo indicador nulo binary, podemos usar os modificadores de campo binary e null_if da seguinte maneira.

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

Isso permite que todos os campos com o sufixo NID sejam efetivamente indicadores nulos binary usando o mesmo livro de cópias do exemplo anterior.

Exemplo: indicador nulo de bytes

Para criar um campo indicador nulo bytes, podemos usar os modificadores de campo bytes e null_if da seguinte maneira. Os valores para nulo e não nulo são expressos como HEX.

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

Isso permite que todos os campos com o sufixo NID sejam efetivamente um indicador nulo bytes usando o mesmo copybook do exemplo anterior.

Representação JSON
{
    "non_null_value": string,
    "non_null_values": string,
    "null_value": string,
    "null_values": string,
    "target_field": string
}
Campos
non_null_value

string

Quando especificado, se target_field não for igual a esse valor, o campo não será decodificado nem codificado, e o valor será definido como nulo.

non_null_values

string

Quando especificado, se target_field não for igual a nenhum desses valores, o campo não será decodificado ou codificado, e o valor será definido como nulo.

null_value

string

Quando especificado, se target_field for igual a esse valor, o campo não será decodificado nem codificado, e o valor será definido como nulo.

null_values

string

Quando especificado, se target_field for igual a qualquer um desses valores, o campo não será decodificado ou codificado, e o valor será definido como nulo.

target_field

string

Especifique o campo cujo valor você quer verificar. O campo precisa estar no escopo. Para acessar campos aninhados, use a notação de ponto (por exemplo, "GROUP.FIELD").

NullIfEmpty

O campo precisa ser definido como nulo se todos os bytes nele forem 0.

Forneça um objeto JSON vazio da seguinte maneira:

Representação JSON
{
}

NullIfInvalid

Trata o valor como nulo se a transcodificação falhar. Só é possível aplicar esse modificador a campos dimensionados. Por padrão, quando um campo não é decodificado, todo o registro é movido para o conjunto de dados de transbordamento (erro) e excluído da saída, enquanto o restante do carregamento é concluído com os registros válidos. Quando você define o modificador null_if_invalid, o Mainframe Connector mantém o registro inválido e define esse campo como nulo. Use apenas quando quiser manter essas linhas com um valor nulo, não apenas para que um carregamento seja bem-sucedido, já que o padrão já pula os registros inválidos. O erro é ignorado e não é registrado no conjunto de dados de transbordamento. Durante o processo de decodificação, o valor desse campo será nulo para esse registro. Durante o processo de codificação, se os dados não puderem ser gravados, todo o campo será preenchido com bytes nulos.

Forneça um objeto JSON vazio da seguinte maneira:

Representação JSON
{
}

PackedDecimal

Defina esse campo como um PackedDecimal.

Representação JSON
{
    "logical_type": enum (DecimalLogicalType),
    "negative_sign_nibble": enum (PackedDecimalNegativeNibble)
}
Campos
logical_type

enum (DecimalLogicalType)

Substitua o tipo lógico. Por padrão, o Mainframe Connector usa o tipo lógico ideal com base na precisão e na escala.

negative_sign_nibble

enum (PackedDecimalNegativeNibble)

Especifica o nibble a ser usado para sinais negativos. Embora x'B' e x'D' sejam sinais negativos válidos, alguns sistemas ou aplicativos de mainframe podem ter uma convenção que exija um em vez do outro.

String

Define as várias opções relacionadas à decodificação e codificação de strings. Só pode ser aplicado a um campo de string.

Representação JSON
{
    "encoding": string,
    "pad_char": string,
    "trim_suffix": boolean
}
Campos
encoding

string

A codificação com que o campo é codificado.

pad_char

string

Quando definido, preenche as strings de exportação com pad_char. Se definido, o comprimento de pad_char precisa ser 1. pad_char afeta apenas a codificação. A decodificação ignora pad_char.

trim_suffix

boolean

Quando definido como "true", qualquer espaço em branco no final da string será removido. trim_suffix afeta apenas a decodificação. A codificação ignora trim_suffix. Strings que consistem apenas em espaços em branco se tornam strings vazias.

VarLen

Representa um campo de comprimento variável.

Um campo de comprimento variável contém três partes:

  1. Um item de grupo que contém dois subcampos.
  2. Um campo no item do grupo que contém o período dos dados da transação.
  3. Um campo no item do grupo que contém os dados.

O nome do campo de comprimento variável será o nome do grupo.

Forneça um objeto JSON vazio da seguinte maneira:

Representação JSON
{
}

ZonedDecimal

Define várias opções relacionadas à codificação e decodificação de decimais zonados. Só é possível aplicar esse modificador em um campo decimal.

Representação JSON
{
    "encoding": enum (ZonedDecimalEncoding),
    "logical_type": enum (DecimalLogicalType)
}
Campos
encoding

enum (ZonedDecimalEncoding)

A codificação com que o campo é codificado.

logical_type

enum (DecimalLogicalType)

Especifique o tipo lógico a ser usado ao decodificar ou codificar o campo.

FieldOverride

Substitui ou modifica a cadeia de decodificação e codificação do campo especificado.

Representação JSON
{
    "field": string,
    "modifier": object (FieldModifier)
}
Campos
field

string

Especifique o nome do campo a que o modificador será aplicado.

modifier

object (FieldModifier)

Especifique o modificador a ser aplicado ao campo correspondente.

FieldSuffix

Os sufixos de campo se aplicam a todos os campos que têm um sufixo.

Os campos são correspondentes se terminarem com um hífen (-) ou sublinhado (_) seguido pelo sufixo.

Os sufixos não diferenciam maiúsculas de minúsculas.

O modificador FieldSuffix é aplicado depois do modificador FieldOverride.

Por exemplo, o modificador definido para o sufixo NID será aplicado ao campo chamado FLD-NID, mas não ao campo FUNID.

Representação JSON
{
    "is_inverse": boolean,
    "modifier": object (FieldModifier),
    "suffix": string
}
Campos
is_inverse

boolean

Especifique se o modificador é um modificador de campo inverso ou não. Um modificador de campo inverso aplica o modificador em outro campo que tem o mesmo nome do campo com o modificador, mas sem ele. Por exemplo, se os campos FLD-NID e FLD existirem no mesmo registro, o modificador será aplicado a FLD.

Ao usar um modificador de campo inverso, o identificador especial $self pode ser usado sempre que um nome de campo pode ser usado tradicionalmente para se referir ao campo com o sufixo.

Por exemplo, para criar um campo indicador de nulo, use o modificador de campo null_if com is_inverse definido como true. Consulte NullIf para mais informações.

modifier

object (FieldModifier)

Especifique o modificador a ser aplicado aos campos correspondentes.

suffix

string

O campo com esse sufixo terá o modificador aplicado.

Transformação

As transformações de visualização são usadas para modificar a relação entre a tabela e o arquivo QSAM. As transformações são sempre expressas do ponto de vista dos dados. O conceito é semelhante ao das tabelas de visualização no BigQuery.

Representação JSON
{
    "exclude": object (Exclude),
    "move": object (Move),
    "rename": object (Rename),
    "split": object (Split),
    "target_table": string,
    "unnest": object (Unnest)
}
Campos
exclude

object (Exclude)

move

object (Move)

rename

object (Rename)

split

object (Split)

target_table

string

Opcional. Especifique o nome da tabela (visualização) de destino para aplicar a transformação.

Por padrão, as transformações são aplicadas à tabela principal (_main) ou globalmente, quando aplicável. Se você tiver visualizações divididas (criadas por uma transformação split), poderá segmentar uma tabela dividida específica por nome.

Observação: as transformações de divisão não podem ser segmentadas e vão gerar um erro se target_table estiver definido.

unnest

object (Unnest)

Excluir

Excluir um campo da tabela resultante, mas ainda passar por decodificação ou codificação. Isso é útil quando o campo não precisa ser transferido para a tabela, mas é necessário para a transcodificação. Por exemplo, indicadores nulos ou campos de comprimento podem ser omitidos da tabela.

Para evitar a transcodificação, aplique o modificador de preenchimento.

Representação JSON
{
    "field": string
}
Campos
field

string

Especifique o campo a ser excluído.

Mover

Mova um campo no registro.

Representação JSON
{
    "field": string,
    "offset": int
}
Campos
field

string

Especifique o campo a ser movido.

offset

int

Especifique o número de casas, para frente ou para trás, que o campo precisa ser movido.

Renomear

Renomeie um ou mais campos com base em uma correspondência de expressão regular.

Por exemplo, para substituir todos os hífens por sublinhados, use o seguinte formato JSON: {"find": "\\-", "replace":"_"}.

Representação JSON
{
    "find": string,
    "replace": string
}
Campos
find

string

Especifica um padrão de expressão regular Java para identificar os campos a serem renomeados.

O padrão é comparado com o nome completo do campo. Se o padrão corresponder a qualquer parte do nome do campo, ele será considerado uma correspondência.

Exemplos:

  • "\\-" (corresponde a qualquer campo que contenha um hífen)
  • "^field_name$" (corresponde a campos com o nome exato field_name)
  • "^field_(.*)$" (corresponde a qualquer campo que comece com field_ e captura o restante)
  • "part_of_name" (corresponde a qualquer campo que contenha part_of_name)

replace

string

Especifica o novo nome para os campos correspondentes.

Os grupos de captura da expressão regular find podem ser usados na string replace com referências anteriores como $1, $2. Isso permite transformações mais complexas com base em partes do nome do campo original.

Exemplos:

  • "new_field_name" (substitui o campo por um nome fixo)
  • "new_$1" (usa o primeiro grupo de captura de find)
  • "${1}_new" (sintaxe alternativa para grupos de captura)
  • "prefix_$1_suffix" (usa um grupo de captura e adiciona prefixos/sufixos)

Divisão

Representação JSON
{
    "field": string,
    "foreign_key": string,
    "primary_key": string
}
Campos
field

string

Especifique o campo que você quer dividir.

foreign_key

string

Especifique o nome do campo que será adicionado ao novo esquema em que o valor da chave primária será armazenado. Se não for especificado, o nome da chave primária será usado.

primary_key

string

Especifique o nome do campo que será usado como chave primária.

Unnest

Remova o aninhamento do campo.

Representação JSON
{
    "field": string,
    "format": string
}
Campos
field

string

Especifique o campo a ser desagrupado

format

string

Especifique o novo formato do campo.

O ${parent} será lançado com o nome do campo sendo desagrupado.

Para structs não aninhadas, ${field} é substituído pelo nome do campo de structs.

Para matrizes e listas não aninhadas, ${index} é substituído pelos índices da matriz.

Tipos enumerados

BinarySignedness

Tipos enumerados
SIGNED O número binário é assinado.
UNSIGNED O número binário não é assinado.
UNSPECIFIED Tente deduzir a integridade da cadeia de saída.

DecimalLogicalType

Tipo lógico a ser usado para um campo decimal.

Tipos enumerados
AUTO Use o tipo mais adequado com base na escala e na precisão.
BIG_DECIMAL Armazene o valor como um decimal sem limites. Essa é a opção mais lenta, mas aceita qualquer decimal de qualquer precisão em qualquer escala.
BIG_INTEGER Armazene o valor como um número inteiro sem limites. Essa é a opção mais lenta, mas aceita qualquer número inteiro de qualquer precisão.
DECIMAL64 Use 64 bits para armazenar o valor. Esse modificador só funciona para números com precisão menor ou igual a 18.
LONG Use 64 bits para armazenar o valor. Esse modificador só funciona para números cuja precisão é menor ou igual a 18 e a escala é 0.

PackedDecimalNegativeNibble

Tipos enumerados
NIBBLE_B O padrão é usar x'B'.
NIBBLE_D Use x'D' para o nibble de sinal negativo.

SchemaValidationMode

Especifique o modo de validação de esquema a ser usado durante a compilação do copybook. Esse modo verifica a compatibilidade com um formato de dados de destino específico.

Tipos enumerados
BIG_QUERY Modo de validação de esquema para compatibilidade com o BigQuery. Esse modo estende a validação padrão para verificar se o esquema do copybook é compatível com os tipos de dados do BigQuery.
DEFAULT Modo de validação de esquema padrão. Esse modo verifica se há nomes de campos exclusivos no copybook.
MYSQL Modo de validação de esquema para compatibilidade com MySQL. Esse modo estende a validação padrão para verificar se o esquema do copybook é compatível com os tipos de dados do MySQL.
POSTGRES Modo de validação de esquema para compatibilidade com PostgreSQL. Esse modo estende a validação padrão para verificar se o esquema do copybook é compatível com os tipos de dados do PostgreSQL.

ZonedDecimalEncoding

Especifique a codificação a ser usada ao decodificar ou codificar um campo decimal zonado.

Tipos enumerados
ASCII Use a codificação ASCII.
EBCDIC Use a codificação EBCDIC.
UNSPECIFIED Mantenha a codificação especificada na cadeia de modificadores. Se nenhum modificador for especificado, EBCDIC será usado.