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:
-
cust_coderetorna1 -
nameretorna-1 -
cityretorna0 -
stateretorna-1
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