MACRO

Durée de validité

Extraction et réplication

Description

Utilisez le paramètre MACRO pour créer une macro Oracle GoldenGate. Reportez-vous à la section Using Macros pour plus d'informations sur l'utilisation des macros, notamment sur la manière de les appeler correctement.

Valeur par défaut

Aucun

Syntaxe

Les éléments suivants doivent être utilisés dans l'ordre indiqué ci-dessous :

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

MACRO

Démarre la spécification de macro.

<#>

Le caractère macro. Les noms de macro et de paramètre doivent commencer par un caractère de macro. Tous les éléments du fichier de paramètre qui commencent par le caractère de macro sont considérés comme une macro ou un paramètre de macro.

Le caractère de macro par défaut est le caractère dièse (#), comme dans les exemples suivants :

MACRO #macro1
PARAMS (#param1, #param2)

Vous pouvez modifier le caractère de la macro avec le paramètre MACROCHAR.

<macro_name>

le nom de la macro, Les noms de macro doivent être un mot avec des caractères alphanumériques (les traits de soulignement sont autorisés) et ne doivent pas respecter la casse. Chaque nom de macro dans un fichier de paramètres doit être unique. N'utilisez pas de guillemets, sinon le nom de la macro sera traité comme du texte et ignoré.

PARAMS

Démarre une clause de paramètre. Une clause parameters est facultative. La taille maximale et le nombre de paramètres sont illimités, en supposant que la mémoire disponible soit suffisante.

<param_name>

Décrit un paramètre dans la macro. Les noms de paramètre ne distinguent pas les majuscules des minuscules. N'utilisez pas de guillemets, sinon le nom du paramètre sera traité comme du texte et ignoré.

Chaque paramètre utilisé dans une macro doit être déclaré dans l'instruction PARAMS. Lorsque la macro est appelée, l'appel doit inclure une valeur pour chaque paramètre.

BEGIN

Commence le corps de la macro. Doit être spécifié avant le corps de la macro.

<macro_body>

Le corps de la macro. La taille du corps de la macro est illimitée, en supposant que la mémoire disponible soit suffisante. Un corps de macro peut inclure l'un des types d'instruction suivants :

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

END;

Conclut la définition macro. Le point-virgule est requis pour terminer la définition.

Exemples

Exemple 1

L'exemple suivant définit une macro qui prend des paramètres.

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;

Exemple 2

L'exemple suivant définit une macro qui ne nécessite pas de paramètres.

MACRO #option_defaults
BEGIN
GETINSERTS
GETUPDATES
GETDELETES
INSERTDELETES
END;

Exemple 3

L'exemple suivant définit une macro nommée #assign_date qui appelle une autre macro nommée #make_date.

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