GET_COL_METADATA_FROM_NAME

Válido Para

Extract e Replicat

Descrição

Use a função GET_COL_METADATA_FROM_NAME para recuperar metadados de coluna especificando o nome da coluna desejada. Se a sessão de caracteres da saída do usuário for definida com SET_SESSION_CHARSET para um valor diferente do conjunto de caracteres padrão do sistema operacional, conforme definido em ULIB_CS_DEFAULT no arquivo ucharset.h, os dados de caracteres que são trocados entre a saída do usuário e o processo serão interpretados no conjunto de caracteres da sessão.

Se o banco de dados fizer distinção entre maiúsculas e minúsculas, os nomes de objetos devem ser especificados na mesma letra que são definidos no banco de dados de hospedagem; caso contrário, a letra não importa.

Sintaxe

#include "usrdecs.h"
short result_code;
col_metadata_def column_meta_rec;
ERCALLBACK (GET_COL_METADATA_FROM_NAME, &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_name>

O nome da coluna do valor 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_index>

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

actual_name_length

O tamanho real do nome retornado.

<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

value_truncated

Um flag (0 ou 1) para indicar se o valor foi truncado ou não. Truncação ocorre 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.

<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 definidas em uma ordem na tabela e outra na definição do índice.

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

O retorno é o seguinte:

Se a coluna fizer parte da chave, sua ordem no índice será retornada como um número inteiro.

Se a coluna não fizer parte da chave, um valor de -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