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:

<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:

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