GET_COL_METADATA_FROM_INDEX
Gültig für
Extrakt und Replicat
Beschreibung
Verwenden Sie die Funktion GET_COL_METADATA_FROM_INDEX, um Spaltenmetadaten abzurufen, indem Sie den Index der gewünschten Spalte angeben.
Datenbankobjektnamen werden genau so zurückgegeben, wie sie in der Hostdatenbank definiert sind, einschließlich der Groß-/Kleinschreibung.
Syntax
#include "usrdecs.h"
short result_code;
col_metadata_def column_meta_rec;
ERCALLBACK (GET_COL_METADATA_FROM_INDEX, &column_meta_rec, &result_code);
Puffer
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;
Eingabe
<column_index>
Der Spaltenindex des zurückzugebenden Spaltenwerts.
<max_name_length>
Die maximale Länge des zurückgegebenen Spaltennamens. Normalerweise entspricht die maximale Länge der Länge des Namenspuffers. Da der zurückgegebene Name null-terminiert ist, muss die maximale Länge der maximalen Länge des Spaltennamens entsprechen.
<source_or_target>
Eine der folgenden Optionen gibt an, ob der Quell- oder Zieldatensatz komprimiert wird.
EXIT_FN_SOURCE_VAL
EXIT_FN_TARGET_VAL
Ausgabe
<column_name>
Der Spaltenname des zurückzugebenden Spaltenwerts.
actual_name_length
Die tatsächliche Länge des zurückgegebenen Namens.
value_truncated
Ein Flag (0 oder 1), das angibt, ob der Wert abgeschnitten wurde. Eine Abkürzung tritt auf, wenn die Länge des Spaltennamens plus des Null-Terminators die maximale Pufferlänge überschreitet.
<native_data_type>
Der native Datentyp (für die Datenbank) der Spalte. Je nach Prozess wird entweder native_data_type oder dd_data_type wie folgt zurückgegeben:
-
Wenn Extract die Callback-Anforderung für eine Quellspalte ausführt, wird
native_data_typezurückgegeben. Wenn Extract eine zugeordnete Zielspalte anfordert, wirdgg_data_typezurückgegeben (vorausgesetzt, es ist eine Zieldefinitionsdatei im System vorhanden). -
Wenn eine Extract Data Pump die Callback-Anforderung für eine Quellspalte ausführt und eine lokale Datenbank vorhanden ist, wird
native_data_typezurückgegeben. Wenn keine Datenbank vorhanden ist, wirdgg_data_typezurückgegeben (vorausgesetzt, das System enthält eine Quelldefinitionsdatei). Wenn die Pumpe die Zielspalte anfordert, wirdgg_data_typezurückgegeben (vorausgesetzt, eine Zieldefinitionsdatei ist im System vorhanden). -
Wenn Replicat die Callback-Anforderung für die Quellspalte ausführt, wird
gg_data_typezurückgegeben (vorausgesetzt, eine Quelldefinitionsdatei ist im System vorhanden). Wenn Replicat die Quellspalte anfordert undASSUMETARGETDEFSin der Parameterdatei verwendet wird, wirdnative_data_typezurückgegeben. Wenn Replicat die Zielspalte anfordert, wirdnative_data_typezurückgegeben.
<gg_data_type>
Der Oracle GoldenGate-Datentyp der Spalte.
<gg_sub_data_type>
Der Oracle GoldenGate-Subtyp der Spalte.
<is_nullable>
Kennzeichen, das angibt, ob die Spalte einen Nullwert zulässt (TRUE oder FALSE).
<is_part_of_key>
Kennzeichen (TRUE oder FALSE), das angibt, ob die Spalte Teil des Schlüssels ist, der von Oracle GoldenGate verwendet wird.
<key_column_index>
Gibt die Reihenfolge der Spalten im Index an. Beispiel: Die folgende Tabelle enthält zwei Schlüsselspalten, die in einer anderen Reihenfolge als die Reihenfolge vorhanden sind, in der sie im Primärschlüssel deklariert werden.
CREATE TABLE ABC
(
cust_code VARCHAR2(4),
name VARCHAR2(30),
city VARCHAR2(20),
state CHAR(2),
PRIMARY KEY (city, cust_code)
USING INDEX
);
Die Ausführung der Callback-Funktion für jede Spalte in der logischen Spaltenreihenfolge gibt Folgendes zurück:
-
cust_codegibt1zurück -
namegibt-1zurück -
citygibt0zurück -
stategibt-1zurück
Wenn die Spalte Teil des Schlüssels ist, entspricht der zurückgegebene Wert der Reihenfolge der Spalte im Schlüssel.
Wenn die Spalte nicht Teil des Schlüssels ist, wird der Wert -1 zurückgegeben.
<length>
Gibt die Länge der Spalte zurück.
<precision>
Wenn es sich um einen numerischen Datentyp handelt, wird die Gesamtstellenzahl der Spalte zurückgegeben.
<scale>
Wenn es sich um einen numerischen Datentyp handelt, wird die Skala zurückgegeben.
Rückgabewerte
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