SET_COLUMN_VALUE_BY_NAME

Valido per

Estrai e Replicat

Descrizione

Utilizzare la funzione SET_COLUMN_VALUE_BY_NAME o SET_COLUMN_VALUE_BY_INDEX per modificare un valore di colonna singola senza modificare l'intero record di dati.

Se la sessione dei caratteri dell'uscita utente è impostata con SET_SESSION_CHARSET su un valore diverso dal set di caratteri predefinito del sistema operativo, come definito in ULIB_CS_DEFAULT nel file ucharset.h, i dati dei caratteri scambiati tra l'uscita utente e il processo vengono interpretati nel set di caratteri della sessione.

Un valore di colonna viene impostato sul set di caratteri della sessione solo se è vero quanto segue:

Se il database fa distinzione tra maiuscole e minuscole, i nomi degli oggetti devono essere specificati nella stessa lettera maiuscola definita nel database di hosting; in caso contrario, il caso non importa.

Sintassi

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

Buffer

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;

Input

<column_value>

Un puntatore a un buffer che rappresenta il nuovo valore di colonna.

<actual_value_length>

Lunghezza del nuovo valore di colonna, in byte. La lunghezza effettiva non deve includere il terminatore nullo se il nuovo valore di colonna è in formato ASCII.

<null_value>

Flag (0 o 1) che indica se il nuovo valore di colonna è nullo. Se il flag null_value è impostato su 1, il valore della colonna nel record di dati viene impostato su null.

<remove_column>

Flag (0 o 1) che indica se rimuovere la colonna da un aggiornamento compresso, se esistente. Un aggiornamento compresso è un aggiornamento in cui vengono registrati solo i valori di colonna modificati, non tutti i valori di colonna. Questo flag deve essere impostato solo se il tipo di operazione per il record è UPDATE_COMP_SQL_VAL o PK_UPDATE_SQL_VAL.

<column_name>

Il nome della colonna che corrisponde al nuovo valore di colonna da copiare nel buffer dei record di dati.

<column_value_mode>

Indica il formato del valore della colonna.

EXIT_FN_CHAR_FORMAT

Formato ASCII: il valore è una stringa ASCII (o EBCDIC) con terminazione nulla (con un'eccezione nota per il tipo di dati secondari UTF16_BE, che viene convertito in UTF 8). Nota: un valore di colonna potrebbe essere troncato quando viene presentato a un'uscita utente, perché il valore viene interpretato come una stringa ASCII e dovrebbe essere nullo. Il primo valore di 0 diventa il terminatore di stringa.

EXIT_FN_RAW_FORMAT

Formato canonico interno di Oracle GoldenGate: questo formato include un indicatore nullo a due byte e una lunghezza dei dati della variabile a due byte, se applicabile. Oracle GoldenGate non esegue alcuna conversione del set di caratteri per questo formato per alcun tipo di dati carattere.

EXIT_FN_CNVTED_SESS_CHAR_FORMAT

Set di caratteri di uscita utente: si applica solo se il tipo di dati della colonna è:

Questo formato non è nullo.

<source_or_target>

Una delle seguenti opzioni indica se il record di dati di origine o di destinazione viene modificato.

EXIT_FN_SOURCE_VAL
EXIT_FN_TARGET_VAL

<requesting_before_after_ind>

Imposta quando si imposta un valore di colonna in un record io_type di UPDATE_COMP_PK_SQL_VAL (aggiornamento chiave primaria). Utilizzare una delle seguenti opzioni per indicare a quale parte dell'aggiornamento della chiave primaria è necessario accedere. L'impostazione predefinita è AFTER_IMAGE_VAL.

Output

Nessuno

Valori restituiti

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