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 :
-
Si le processus Extract effectue la demande de rappel pour une colonne source,
native_data_typeest renvoyé. Si le processus Extract demande une colonne cible mise en correspondance,gg_data_typeest renvoyé (en supposant qu'il existe un fichier de définitions de cible sur le système). -
Si une pompe de données Extract effectue la demande de callback pour une colonne source et qu'il existe une base de données locale,
native_data_typeest renvoyé. S'il n'existe aucune base de données,gg_data_typeest renvoyé (en supposant qu'il existe un fichier de définitions source sur le système). Si la pompe demande la colonne cible,gg_data_typeest renvoyé (en supposant qu'un fichier de définitions de cible existe sur le système). -
Si le processus Replicat effectue la demande de rappel pour la colonne source,
gg_data_typeest renvoyé (en supposant qu'un fichier de définitions source existe sur le système). Si le processus Replicat demande la colonne source et queASSUMETARGETDEFSest utilisé dans le fichier de paramètres,native_data_typeest renvoyé. Si le processus Replicat demande la colonne cible,native_data_typeest renvoyé.
<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 :
-
cust_coderenvoie1 -
namerenvoie-1 -
cityrenvoie0 -
staterenvoie-1
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