MAKRO

Gültig für

Extrakt und Replicat

Beschreibung

Mit dem Parameter MACRO können Sie ein Oracle GoldenGate-Makro erstellen. Weitere Informationen zur Verwendung von Makros sowie deren ordnungsgemäßem Aufruf finden Sie unter Makros verwenden.

Standard

Keine

Syntax

Die folgenden Elemente müssen in der aufgeführten Reihenfolge verwendet werden:

MACRO *#<macro_name>*
PARAMS (*#<param_name>* [, ...])
BEGIN
<macro_body>
END;

MACRO

Startet die Makrospezifikation.

<#>

Das Makrozeichen. Makro- und Parameternamen müssen mit einem Makrozeichen beginnen. Jede Angabe in der Parameterdatei, die mit einem Makrozeichen beginnt, wird als Makro- oder Makroparameter betrachtet.

Das Standardmakrozeichen ist das Nummernzeichen (#), wie in den folgenden Beispielen:

MACRO #macro1
PARAMS (#param1, #param2)

Sie können das Makrozeichen mit dem Parameter MACROCHAR ändern.

<macro_name>

Der Name des Makros. Makronamen müssen ein Wort mit alphanumerischen Zeichen sein (Unterstriche sind zulässig) und müssen nicht zwischen Groß- und Kleinschreibung unterschieden werden. Jeder Makroname in einer Parameterdatei muss eindeutig sein. Verwenden Sie keine Anführungszeichen. Andernfalls wird der Makroname als Text behandelt und ignoriert.

PARAMS

Startet eine Parameterklausel. Eine Parameterklausel ist optional. Die maximale Größe und die Anzahl von Parametern ist unbegrenzt, vorausgesetzt es ist genügend Arbeitsspeicher vorhanden.

<param_name>

Beschreibt einen Parameter für das Makro. Bei Parameternamen wird die Groß-/Kleinschreibung nicht beachtet. Verwenden Sie keine Anführungszeichen. Andernfalls wird der Parametername als Text behandelt und ignoriert.

Jeder in einem Makro verwendete Parameter muss in der PARAMS-Anweisung deklariert werden. Wenn das Makro aufgerufen wird, muss der Aufruf einen Wert für jeden Parameter enthalten.

BEGIN

Beginnt den Makrohaupttext. Muss vor dem Makrohaupttext angegeben werden.

<macro_body>

Der Körper des Makros. Die Größe des Makrokörpers ist unbegrenzt, vorausgesetzt, der verfügbare Speicher ist ausreichend. Ein Makrobody kann eine der folgenden Anweisungstypen enthalten:

COL1 = COL2
COL1 = #val2
#colmap(COL1, #sourcecol)

END;

Schließt die Makrodefinition ab. Das Semikolon ist für den Abschluss der Definition erforderlich.

Beispiele

Beispiel 1

Im folgenden Beispiel wird ein Makro definiert, das Parameter verwendet.

MACRO #make_date
PARAMS (#year, #month, #day)
BEGIN
@DATE('YYYY-MM-DD', 'CC', @IF(#year < 50, 20, 19),
'YY', #year, 'MM', #month, 'DD', #day)
END;

Beispiel 2

Im folgenden Beispiel wird ein Makro definiert, für das keine Parameter erforderlich sind.

MACRO #option_defaults
BEGIN
GETINSERTS
GETUPDATES
GETDELETES
INSERTDELETES
END;

Beispiel 3

Im folgenden Beispiel wird ein Makro namens #assign_date definiert, das ein anderes Makro namens #make_date aufruft.

MACRO #assign_date
PARAMS (#target_col, #year, #month, #day)
BEGIN
#target_col = #make_date (#year, #month, #day)
END;