GET_COL_METADATA_FROM_INDEX
Válido para
Extraer y Replicat
Descripción
Utilice la función GET_COL_METADATA_FROM_INDEX para recuperar metadatos de columna especificando el índice de la columna deseada.
Los nombres de objetos de base de datos se devuelven exactamente como se definen en la base de datos de alojamiento, incluidas las mayúsculas y minúsculas.
Sintaxis
#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>
Índice de columna del valor de columna que se va a devolver.
<max_name_length>
Longitud máxima del nombre de columna devuelto. Normalmente, la longitud máxima es la longitud del buffer de nombres. Dado que el nombre devuelto es nulo, la longitud máxima debe ser igual a la longitud máxima del nombre de columna.
<source_or_target>
Una de las siguientes opciones para indicar si el registro de origen o de destino se está comprimiendo.
EXIT_FN_SOURCE_VAL
EXIT_FN_TARGET_VAL
Salida
<column_name>
Nombre de columna del valor de columna que se va a devolver.
actual_name_length
La longitud real del nombre devuelto.
value_truncated
Indicador (0 o 1) para indicar si el valor se ha truncado o no. El truncamiento se produce si la longitud del nombre de columna más el terminador nulo supera la longitud máxima del buffer.
<native_data_type>
Tipo de dato nativo (de la base de datos) de la columna. Se devuelve native_data_type o dd_data_type, según el proceso, de la siguiente forma:
-
Si Extract está realizando la solicitud de devolución de llamada para una columna de origen, se devuelve
native_data_type. Si Extract está solicitando una columna de destino asignada, se devuelvegg_data_type(suponiendo que haya un archivo de definiciones de destino en el sistema). -
Si un pump de datos de Extract realiza la solicitud de devolución de llamada para una columna de origen y hay una base de datos local, se devuelve
native_data_type. Si no hay ninguna base de datos, se devuelvegg_data_type(suponiendo que haya un archivo de definiciones de origen en el sistema). Si la bomba está solicitando la columna de destino, se devuelvegg_data_type(suponiendo que exista un archivo de definiciones de destino en el sistema). -
Si Replicat está realizando la solicitud de devolución de llamada para la columna de origen, se devuelve
gg_data_type(suponiendo que exista un archivo de definiciones de origen en el sistema). Si Replicat solicita la columna de origen yASSUMETARGETDEFSse está utilizando en el archivo de parámetros, se devuelvenative_data_type. Si Replicat está solicitando la columna de destino, se devuelvenative_data_type.
<gg_data_type>
Tipo de dato de Oracle GoldenGate de la columna.
<gg_sub_data_type>
Subtipo de Oracle GoldenGate de la columna.
<is_nullable>
Indicador que especifica si la columna permite un valor nulo (TRUE o FALSE).
<is_part_of_key>
Indicador (TRUE o FALSE) que indica si la columna forma parte de la clave que está utilizando Oracle GoldenGate.
<key_column_index>
Indica el orden de las columnas en el índice. Por ejemplo, la siguiente tabla tiene dos columnas de clave que existen en un orden diferente al orden en el que se declaran en la clave primaria.
CREATE TABLE ABC
(
cust_code VARCHAR2(4),
name VARCHAR2(30),
city VARCHAR2(20),
state CHAR(2),
PRIMARY KEY (city, cust_code)
USING INDEX
);
La ejecución de la función de devolución de llamada para cada columna en el orden de columna lógica devuelve lo siguiente:
-
cust_codedevuelve1 -
namedevuelve-1 -
citydevuelve0 -
statedevuelve-1
Si la columna forma parte de la clave, el valor devuelto es el orden de la columna dentro de la clave.
Si la columna no forma parte de la clave, se devuelve el valor -1.
<length>
Devuelve la longitud de la columna.
<precision>
Si es un tipo de dato numérico, devuelve la precisión de la columna.
<scale>
Si es un tipo de datos numérico, devuelve la escala.
Valores devueltos
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