GET_COL_METADATA_FROM_NAME
Valido per
Estrai e Replicat
Descrizione
Utilizzare la funzione GET_COL_METADATA_FROM_NAME per recuperare i metadati delle colonne specificando il nome della colonna desiderata. 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.
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;
col_metadata_def column_meta_rec;
ERCALLBACK (GET_COL_METADATA_FROM_NAME, &column_meta_rec, &result_code);
Buffer
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;
Input
<column_name>
Nome della colonna del valore della colonna da restituire.
<max_name_length>
La lunghezza massima del nome colonna restituito. In genere, la lunghezza massima è la lunghezza del buffer del nome. Poiché il nome restituito è nullo, la lunghezza massima deve essere uguale alla lunghezza massima del nome colonna.
<source_or_target>
Una delle seguenti opzioni indica se il record di origine o di destinazione viene compresso.
EXIT_FN_SOURCE_VAL
EXIT_FN_TARGET_VAL
Output
<column_index>
Indice di colonna del valore di colonna da restituire.
actual_name_length
La lunghezza effettiva del nome restituito.
<source_or_target>
Una delle seguenti opzioni indica se il record di origine o di destinazione viene compresso.
EXIT_FN_SOURCE_VAL
EXIT_FN_TARGET_VAL
value_truncated
Flag (0 o 1) per indicare se il valore è stato troncato o meno. La troncatura si verifica se la lunghezza del nome della colonna più il terminatore nullo supera la lunghezza massima del buffer.
<native_data_type>
Il tipo di dati nativo (del database) della colonna.
<gg_data_type>
Tipo di dati di Oracle GoldenGate della colonna.
<gg_sub_data_type>
Sottotipo di Oracle GoldenGate della colonna.
<is_nullable>
Flag che indica se la colonna consente un valore nullo (TRUE o FALSE).
<is_part_of_key>
Flag (TRUE o FALSE) che indica se la colonna fa parte della chiave utilizzata da Oracle GoldenGate.
<key_column_index>
Indica l'ordine delle colonne nell'indice. Ad esempio, la tabella seguente contiene due colonne chiave definite in un ordine nella tabella e un altro nella definizione dell'indice.
CREATE TABLE tcustmer
(
cust_code VARCHAR2(4),
name VARCHAR2(30),
city VARCHAR2(20),
state CHAR(2),
PRIMARY KEY (city, cust_code)
USING INDEX
);
Il ritorno è il seguente:
-
cust_coderestituisce1 -
namerestituisce-1 -
cityrestituisce0 -
staterestituisce-1
Se la colonna fa parte della chiave, il relativo ordine nell'indice viene restituito come numero intero.
Se la colonna non fa parte della chiave, viene restituito il valore -1.
<length>
Restituisce la lunghezza della colonna.
<precision>
Se si tratta di un tipo di dati numerico, restituisce la precisione della colonna.
<scale>
Se si tratta di un tipo di dati numerico, restituisce la scala.
Valori restituiti
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