SET_COLUMN_VALUE_BY_INDEX

Durée de validité

Extraction et réplication

Description

Utilisez la fonction SET_COLUMN_VALUE_BY_INDEX ou SET_COLUMN_VALUE_BY_NAME pour modifier une valeur de colonne unique sans manipuler l'ensemble de l'enregistrement de données. 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.

Une valeur de colonne est définie sur le jeu de caractères de session uniquement si la condition suivante est remplie :

Syntaxe

#include "usrdecs.h"
short result_code;
column_def column;
ERCALLBACK (SET_COLUMN_VALUE_BY_INDEX, &column, &result_code);

Tampon

typedef struct
{
char *column_value;
unsigned short max_value_length;
unsigned short actual_value_length;
short null_value;
short remove_column;
short value_truncated;
short column_index;
char *column_name;
/* Version 3 CALLBACK_STRUCT_VERSION */
short column_value_mode;
short source_or_target;
/* Version 2 CALLBACK_STRUCT_VERSION */
char requesting_before_after_ind;
char more_lob_data;
/* Version 3 CALLBACK_STRUCT_VERSION  */
ULibCharSet column_charset;
} column_def;

Entrée

<column_value>

Pointeur vers un tampon représentant la nouvelle valeur de colonne.

<actual_value_length>

Longueur de la nouvelle valeur de colonne, en octets. La longueur réelle ne doit pas inclure le caractère de fin NULL si la nouvelle valeur de colonne est au format ASCII.

<null_value>

Indicateur (0 ou 1) indiquant si la nouvelle valeur de colonne est NULL. Si l'indicateur null_value est défini sur 1, la valeur de colonne de l'enregistrement de données est définie sur NULL.

<remove_column>

Indicateur (0 ou 1) indiquant si la colonne doit être enlevée d'une mise à jour compressée si elle existe. Une mise à jour compressée est une mise à jour dans laquelle seules les valeurs de colonne modifiées sont consignées, pas toutes les valeurs de colonne. Cet indicateur ne doit être défini que si le type d'opération de l'enregistrement est UPDATE_COMP_SQL_VAL ou PK_UPDATE_SQL_VAL.

<column_index>

Index de colonne de la nouvelle valeur de colonne à copier dans le tampon d'enregistrement de données. Les index de colonne commencent à zéro.

<column_value_mode>

Indique le format de la valeur de colonne.

EXIT_FN_CHAR_FORMAT

Format ASCII : la valeur est une chaîne ASCII (ou EBCDIC) à terminaison NULL (avec une exception connue pour le type de sous-données UTF16_BE, qui est converti en UTF 8). Remarque : Une valeur de colonne peut être tronquée lorsqu'elle est présentée à un user exit, car elle est interprétée comme une chaîne ASCII et est censée être terminée par une valeur NULL. La première valeur de 0 devient le caractère de fin de chaîne.

EXIT_FN_RAW_FORMAT

Format canonique Oracle GoldenGate interne : ce format inclut un indicateur NULL de deux octets et une longueur de données variable de deux octets, le cas échéant. Oracle GoldenGate n'effectue aucune conversion de jeu de caractères pour ce format, quel que soit le type de données.

EXIT_FN_CNVTED_SESS_CHAR_FORMAT

Jeu de caractères de sortie utilisateur : s'applique uniquement si le type de données de colonne est :

Ce format ne prend pas fin avec la valeur NULL.

<source_or_target>

L'un des éléments suivants indique si l'enregistrement source ou cible est en cours de modification.

EXIT_FN_SOURCE_VAL
EXIT_FN_TARGET_VAL

<requesting_before_after_ind>

Définir lors de la définition d'une valeur de colonne sur un enregistrement io_type de UPDATE_COMP_PK_SQL_VAL (mise à jour de clé primaire). Utilisez l'une des méthodes suivantes pour indiquer quelle partie de la mise à jour de clé primaire doit être accessible. La valeur par défaut est AFTER_IMAGE_VAL.

Sortie

Aucun

Valeurs retournées

EXIT_FN_RET_BAD_COLUMN_DATA
EXIT_FN_RET_INVALID_COLUMN
EXIT_FN_RET_INVALID_CONTEXT
EXIT_FN_RET_INVALID_PARAM
EXIT_FN_RET_OK
EXIT_FN_RET_NOT_SUPPORTED
EXIT_FN_RET_INVALID_COLUMN_TYPE