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:

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