GET_COL_METADATA_FROM_NAME
Durée de validité
Extraction et réplication
Description
Utilisez la fonction GET_COL_METADATA_FROM_NAME pour extraire les métadonnées de colonne en indiquant le nom de la colonne souhaitée. Si la session de caractères de l'exit utilisateur est définie avec SET_SESSION_CHARSET sur une valeur autre que le jeu de caractères par défaut du système d'exploitation, tel que défini dans ULIB_CS_DEFAULT dans le fichier ucharset.h, les données de caractères échangées entre l'exit utilisateur et le processus sont interprétées dans le jeu de caractères de session.
Si la base de données fait la distinction entre les majuscules et les minuscules, les noms d'objet doivent être indiqués dans la même lettre que ceux définis dans la base de données d'hébergement. Sinon, la casse n'a pas d'importance.
Syntaxe
#include "usrdecs.h"
short result_code;
col_metadata_def column_meta_rec;
ERCALLBACK (GET_COL_METADATA_FROM_NAME, &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_name>
Nom 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é avec la 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_index>
Index de colonne de la valeur de colonne à renvoyer.
actual_name_length
Longueur réelle du nom renvoyé.
<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
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.
<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é définies dans un ordre dans la table et une autre dans la définition d'index.
CREATE TABLE tcustmer
(
cust_code VARCHAR2(4),
name VARCHAR2(30),
city VARCHAR2(20),
state CHAR(2),
PRIMARY KEY (city, cust_code)
USING INDEX
);
Le retour est le suivant :
-
cust_coderenvoie1 -
namerenvoie-1 -
cityrenvoie0 -
staterenvoie-1
Si la colonne fait partie de la clé, son ordre dans l'index est renvoyé sous forme d'entier.
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