GET_COL_METADATA_FROM_NAME

Válido para

Extraer y Replicat

Descripción

Utilice la función GET_COL_METADATA_FROM_NAME para recuperar metadatos de columna especificando el nombre de la columna deseada. Si la sesión de caracteres de la salida de usuario se define con SET_SESSION_CHARSET en un valor distinto del juego de caracteres por defecto del sistema operativo, como se define en ULIB_CS_DEFAULT en el archivo ucharset.h, los datos de caracteres que se intercambian entre la salida de usuario y el proceso se interpretan en el juego de caracteres de la sesión.

Si la base de datos distingue entre mayúsculas y minúsculas, los nombres de objeto se deben especificar en las mismas mayúsculas y minúsculas que se definen en la base de datos de alojamiento; de lo contrario, las mayúsculas y minúsculas no importan.

Sintaxis

#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>

Nombre 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_index>

Índice de columna del valor de columna que se va a devolver.

actual_name_length

La longitud real del nombre devuelto.

<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

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.

<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 clave que se definen en un orden en la tabla y otra en la definición de índice.

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

La devolución es la siguiente:

Si la columna forma parte de la clave, su orden en el índice se devuelve como un entero.

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