Configuração do transcodificador

Para configurar o transcodificador do Mainframe Connector, adicione a configuração necessária em um arquivo JSON. Esse arquivo é chamado de arquivo de configuração do transcodificador. É preciso definir 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 da transcodificação. 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 as substituições de campo.

field_suffixes

object (FieldSuffix)

Especifique os 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 os registros.

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

  • Acesso ao campo: 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).
  • Inclusão em lista: `in` (verifica se um valor está presente em uma lista).
  • Operadores aritméticos: `+`, `-`, `*`, `/`, `%`.
  • Funções de string e lista:
    • size(): retorna o tamanho 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 de tipos de dados iguais ou compatíveis (por exemplo, comparar números de usar pontos flutuantes 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 do esquema.

transformations

object (Transformation)

Especifique as 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 modificação de sufixo ou 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 os padrões para campos alfanuméricos (PIC X).

binary

object (FieldModifier)

Especifique os padrões para campos de números binários (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 os 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 dos modificadores específicos para mais informações.

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 anteriores.

chain

object (ModifierChain)

Encadeia vários modificadores para serem aplicados em sequência.

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 de ponto flutuante hexadecimal (HFP, na sigla em inglês).

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 dele 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 para 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

Ignora os modificadores anteriores e trata esse campo como um número binário.

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

enum (BinarySignedness)

A presença de 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 como estão, sem codificação de caracteres específica ou interpretação numérica. É possível aplicar esse modificador a qualquer campo, independentemente 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 é compatível com 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 todas as altas e 00 para todas as baixas (vazio).

values

string

Uma lista de representações de string. Após a decodificação inicial do campo para o formato de string, se o conteúdo do campo corresponder a qualquer um 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

Codifica essa sequência de bytes específica (representada como uma string hexadecimal) quando o valor de origem é nulo. Por exemplo, FF para um campo de dois bytes com 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

Codifica esse valor específico quando o valor de origem é 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 que tenha um tamanho estático conhecido.

Forneça um objeto JSON vazio da seguinte maneira:

Representação JSON
{
}

FormatDate

Formata uma string ou um campo numérico como uma data usando um dos formatos aceitos. Só é possível aplicar esse modificador a campos com tamanho definido. Para campos numéricos, eles são convertidos dinamicamente em uma representação de string (excluindo qualquer marcador de sinal) antes da formatação. Presume-se que os valores de data sejam positivos. Datas numéricas negativas não são aceitas 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 os demais são ignorados.

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 formatação válidos, consulte Class DateTimeFormatter.

Observação: os anos de dois dígitos (yy) são mapeados para o intervalo de 2000 a 2099. Por exemplo, com o padrão MM/dd/yy, o valor 05/03/99 é decodificado como 2099-05-03.

size

int

Especifique o tamanho do campo ao qual 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 os demais serão ignorados.

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

object (DateTimeFormat)

Lista de formatos de carimbo de data/hora.

HFP

Defina esse campo como usar pontos flutuantes 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 de indicador 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 de indicador nulo, use 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 efetivamente indicadores nulos, conforme mostrado no seguinte snippet de copybook:

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

Exemplo: indicador nulo binário

Para criar um campo indicador nulo binary, podemos usar os modificadores de campo binary e null_if desta forma.

 {
  "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 copybook 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 desta forma. 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 ou 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 ou 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 com o valor que 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

Tratar o valor como nulo se a transcodificação falhar. Só é possível aplicar esse modificador a campos com tamanho definido. 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-o apenas quando quiser reter essas linhas com um valor nulo, não apenas para que um carregamento seja bem-sucedido, já que o padrão já ignora 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 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 exige um em detrimento 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 verdadeiro, qualquer espaço em branco no final da string será cortado. trim_suffix afeta apenas a decodificação, a codificação ignora trim_suffix. As 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 dentro do item do grupo que contém o tamanho dos dados da transação.
  3. Um campo dentro do item de 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 a 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

Substitua ou modifique 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 ao qual 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 serã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 o modificador. 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 de indicador 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 de 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 de destino (visualização) em que a transformação será aplicada.

Por padrão, as transformações se aplicam à 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 pelo nome.

Observação: as transformações de divisão não podem ser segmentadas e vão gerar um erro se target_table for 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, os campos de indicador nulo ou de comprimento podem ser omitidos da tabela.

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

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

string

Especifique o campo a ser excluído.

Mover

Mover um campo no registro.

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

string

Especifique o campo que será movido.

offset

int

Especifique o número de posições, para frente ou para trás, para onde 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 hifens 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, o campo 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 dos 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

Especificar o campo a ser desaninhar

format

string

Especifique o novo formato do campo.

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

Para structs não aninhados, ${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 tem sinal.
UNSPECIFIED Tente deduzir se o valor é assinado ou não com base na cadeia existente.

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 valor decimal ilimitado. Essa é a opção mais lenta, mas aceita qualquer decimal de qualquer precisão em qualquer escala.
BIG_INTEGER Armazene o valor como um valor inteiro ilimitado. 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 com precisão menor ou igual a 18 e 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 os nomes de campo exclusivos estão no copybook.
MYSQL Modo de validação de esquema para compatibilidade com o 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 o 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.