MACRO (MACRO)

Válido para

Extraer y Replicat

Descripción

Utilice el parámetro MACRO para crear una macro de Oracle GoldenGate. Consulte Uso de macros para obtener más información sobre el uso de macros, incluida la forma de llamarlas correctamente.

Valor por defecto

Ninguno

Sintaxis

Las siguientes palabras deben utilizarse en el orden que se indica:

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

MACRO

Inicia la especificación de la macro.

<#>

El carácter macro. Los nombres de macro y parámetro deben comenzar con un carácter de macro. Cualquier elemento del archivo de parámetros que empiece por el carácter de macro se asume que es una macro o un parámetro de macro.

El carácter de macro por defecto es el carácter de almohadilla (#), como en los siguientes ejemplos:

MACRO #macro1
PARAMS (#param1, #param2)

Puede cambiar el carácter de macro con el parámetro MACROCHAR.

<macro_name>

El nombre de la macro. Los nombres de macro deben ser una palabra con caracteres alfanuméricos (se permiten caracteres de subrayado) y no distinguen entre mayúsculas y minúsculas. Cada nombre de macro de un archivo de parámetros debe ser único. No utilice comillas o, de lo contrario, el nombre de la macro se tratará como texto e ignorará.

PARAMS

Inicia una cláusula de parámetro. Una cláusula de parámetros es opcional. El tamaño y el número máximo de parámetros es ilimitado, con lo que se asumen que hay suficiente memoria disponible.

<param_name>

Describe un parámetro para la macro. Los nombre de los parámetros no distinguen entre mayúsculas/minúsculas. No utilice comillas o, de lo contrario, el nombre del parámetro se tratará como texto e ignorará.

Cada parámetro utilizado en una macro se debe declarar en la sentencia PARAMS y, cuando se llama a la macro, la llamada debe incluir un valor para cada parámetro.

BEGIN

Inicia el cuerpo de la macro. Se debe especificar antes que el cuerpo de la macro.

<macro_body>

El cuerpo de la macro. El tamaño del cuerpo de la macro es ilimitado, suponiendo suficiente memoria disponible. Un cuerpo de macro puede incluir cualquiera de los siguientes tipos de sentencias:

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

END;

Concluye la definición de macro. El punto y coma es necesario para completar la definición.

Ejemplos

Ejemplo 1

En el siguiente ejemplo, se define una macro que toma parámetros.

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;

Ejemplo 2

En el siguiente ejemplo, se define una macro que no requiere parámetros.

MACRO #option_defaults
BEGIN
GETINSERTS
GETUPDATES
GETDELETES
INSERTDELETES
END;

Ejemplo 3

En el siguiente ejemplo se define una macro denominada #assign_date que llama a otra macro denominada #make_date.

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