GET_COL_METADATA_FROM_INDEX

Durée de validité

Extraction et réplication

Description

Utilisez la fonction GET_COL_METADATA_FROM_INDEX pour extraire les métadonnées de colonne en indiquant l'index de la colonne souhaitée.

Les noms d'objet de base de données sont renvoyés exactement tels qu'ils sont définis dans la base de données d'hébergement, y compris la casse des lettres.

Syntaxe

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

Tampon

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;

Entrée

<column_index>

Index de colonne de la valeur de colonne à renvoyer.

<max_name_length>

Longueur maximale du nom de colonne renvoyé. En général, la longueur maximale est la longueur du tampon de noms. Le nom renvoyé étant terminé par une valeur NULL, la longueur maximale doit être égale à la longueur maximale du nom de colonne.

<source_or_target>

L'une des options suivantes indique si l'enregistrement source ou cible est compressé.

EXIT_FN_SOURCE_VAL
EXIT_FN_TARGET_VAL

Sortie

<column_name>

Nom de la colonne de la valeur de colonne à renvoyer.

actual_name_length

Longueur réelle du nom renvoyé.

value_truncated

Indicateur (0 ou 1) indiquant si la valeur a été tronquée. La troncature se produit si la longueur du nom de colonne plus la terminaison NULL dépasse la longueur maximale du tampon.

<native_data_type>

Type de données natif (dans la base de données) de la colonne. native_data_type ou dd_data_type est renvoyé, selon le processus, comme suit :

<gg_data_type>

Type de données Oracle GoldenGate de la colonne.

<gg_sub_data_type>

Sous-type Oracle GoldenGate de la colonne.

<is_nullable>

Indicateur signalant si la colonne autorise une valeur NULL (TRUE ou FALSE).

<is_part_of_key>

Indicateur (TRUE ou FALSE) indiquant si la colonne fait partie de la clé utilisée par Oracle GoldenGate.

<key_column_index>

Indique l'ordre des colonnes dans l'index. Par exemple, la table suivante comporte deux colonnes de clé qui existent dans un ordre différent de celui dans lequel elles sont déclarées dans la clé primaire.

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

L'exécution de la fonction de rappel pour chaque colonne dans l'ordre des colonnes logiques renvoie les résultats suivants :

Si la colonne fait partie de la clé, la valeur renvoyée correspond à l'ordre de la colonne dans la clé.

Si la colonne ne fait pas partie de la clé, la valeur -1 est renvoyée.

<length>

Renvoie la longueur de la colonne.

<precision>

Si le type de données est numérique, renvoie la précision de la colonne.

<scale>

Si le type de données est numérique, renvoie l'échelle.

Valeurs retournées

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