GET_COL_METADATA_FROM_INDEX

Válido Para

Extract e Replicat

Descrição

Use a função GET_COL_METADATA_FROM_INDEX para recuperar metadados de coluna especificando o índice da coluna desejada.

Os nomes de objeto de banco de dados são retornados exatamente como são definidos no banco de dados de hospedagem, incluindo a letra maiúscula.

Sintaxe

#include "usrdecs.h"
short result_code;
col_metadata_def column_meta_rec;
ERCALLBACK (GET_COL_METADATA_FROM_INDEX, &column_meta_rec, &result_code);

Buffer

typedef struct
{
  short column_index;
  char *column_name;
  long max_name_length;
  short native_data_type;
  short gg_data_type;
  short gg_sub_data_type;
  short is_nullable;
  short is_part_of_key;
  short key_column_index;
  short length;
  short precision;
  short scale;
  short source_or_target;
} col_metadata_def;

Entrada

<column_index>

O índice de coluna do valor de coluna a ser retornado.

<max_name_length>

O tamanho máximo do nome da coluna retornada. Normalmente, o tamanho máximo é o tamanho do buffer de nome. Como o nome retornado é nulo terminado, o comprimento máximo deve ser igual ao comprimento máximo do nome da coluna.

<source_or_target>

Um dos itens a seguir indica se o registro de origem ou de destino está sendo compactado.

EXIT_FN_SOURCE_VAL
EXIT_FN_TARGET_VAL

Saída

<column_name>

O nome da coluna do valor a ser retornado.

actual_name_length

O tamanho real do nome retornado.

value_truncated

Um flag (0 ou 1) para indicar se o valor foi truncado ou não. Ocorre truncamento se o tamanho do nome da coluna mais o terminador nulo exceder o tamanho máximo do buffer.

<native_data_type>

O tipo de dados nativo (para o banco de dados) da coluna. native_data_type ou dd_data_type é retornado, dependendo do processo, da seguinte forma:

<gg_data_type>

O tipo de dados do Oracle GoldenGate da coluna.

<gg_sub_data_type>

O subtipo do Oracle GoldenGate da coluna.

<is_nullable>

Indicador que mostra se a coluna permite um valor nulo (TRUE ou FALSE).

<is_part_of_key>

Flag (TRUE ou FALSE) que indica se a coluna faz parte da chave que está sendo usada pelo Oracle GoldenGate.

<key_column_index>

Indica a ordem de colunas no índice. Por exemplo, a tabela a seguir tem duas colunas de chave que existem em uma ordem diferente da ordem em que são declaradas na chave primária.

CREATE TABLE ABC
(
cust_code        VARCHAR2(4),
name             VARCHAR2(30),
city             VARCHAR2(20),
state            CHAR(2),
PRIMARY KEY (city, cust_code)
USING INDEX
);

A execução da função de callback para cada coluna na ordem de coluna lógica retorna o seguinte:

Se a coluna fizer parte da chave, o valor retornado será a ordem da coluna dentro da chave.

Se a coluna não fizer parte da chave, um valor -1 será retornado.

<length>

Retorna o tamanho da coluna.

<precision>

Se um tipo de dados numérico, retorna a precisão da coluna.

<scale>

Se um tipo de dados numérico, retorna a escala.

Valores de Retorno

EXIT_FN_RET_INVALID_PARAM
EXIT_FN_RET_INVALID_CONTEXT
EXIT_FN_RET_EXCEEDED_MAX_LENGTH
EXIT_FN_RET_INVALID_COLUMN
EXIT_FN_RET_OK