GET_COL_METADATA_FROM_NAME
Gültig für
Extrakt und Replicat
Beschreibung
Verwenden Sie die Funktion GET_COL_METADATA_FROM_NAME, um Spaltenmetadaten abzurufen, indem Sie den Namen der gewünschten Spalte angeben. Wenn die Zeichensession des User Exit mit SET_SESSION_CHARSET auf einen anderen Wert als den Standardzeichensatz des Betriebssystems gesetzt wird, wie in ULIB_CS_DEFAULT in der Datei ucharset.h definiert, werden die Zeichendaten, die zwischen dem User Exit und dem Prozess ausgetauscht werden, im Sessionzeichensatz interpretiert.
Wenn bei der Datenbank die Groß-/Kleinschreibung beachtet wird, müssen Objektnamen in derselben Groß-/Kleinschreibung angegeben werden, wie sie in der Hostdatenbank definiert sind. Andernfalls spielt die Groß-/Kleinschreibung keine Rolle.
Syntax
#include "usrdecs.h"
short result_code;
col_metadata_def column_meta_rec;
ERCALLBACK (GET_COL_METADATA_FROM_NAME, &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_name>
Der Spaltenname 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_index>
Der Spaltenindex des zurückzugebenden Spaltenwerts.
actual_name_length
Die tatsächliche Länge des zurückgegebenen Namens.
<source_or_target>
Eine der folgenden Optionen gibt an, ob der Quell- oder Zieldatensatz komprimiert wird.
EXIT_FN_SOURCE_VAL
EXIT_FN_TARGET_VAL
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.
<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 Reihenfolge in der Tabelle und in einer anderen in der Indexdefinition definiert sind.
CREATE TABLE tcustmer
(
cust_code VARCHAR2(4),
name VARCHAR2(30),
city VARCHAR2(20),
state CHAR(2),
PRIMARY KEY (city, cust_code)
USING INDEX
);
Die Rückgabe erfolgt wie folgt:
-
cust_codegibt1zurück -
namegibt-1zurück -
citygibt0zurück -
stategibt-1zurück
Wenn die Spalte Teil des Schlüssels ist, wird ihre Reihenfolge im Index als Ganzzahl zurückgegeben.
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