MACRO

Valido per

Estrai e Replicat

Descrizione

Utilizzare il parametro MACRO per creare una macro Oracle GoldenGate. Vedere Uso delle macro per maggiori informazioni sull'utilizzo delle macro, incluso come richiamarle correttamente.

Predefinito

Nessuno

Sintassi

Nell'ordine mostrato devono essere utilizzati i seguenti elementi:

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

MACRO

Avvia la specifica della macro.

<#>

Il carattere macro. I nomi delle macro e dei parametri devono iniziare con un carattere macro. Qualsiasi elemento del file di parametri che inizia con il carattere macro viene considerato come macro o un parametro di macro.

Il carattere macro predefinito è il cancelletto (#), come negli esempi seguenti:

MACRO #macro1
PARAMS (#param1, #param2)

È possibile modificare il carattere della macro con il parametro MACROCHAR.

<macro_name>

Il nome della macro. I nomi delle macro devono essere una parola con caratteri alfanumerici (sono consentiti caratteri di sottolineatura) e non fanno distinzione tra maiuscole e minuscole. Ogni nome di macro in un file di parametri deve essere univoco. Non utilizzare virgolette, altrimenti il nome della macro verrà considerato come testo e ignorato.

PARAMS

Avvia una clausola di parametro. Una clausola di parametri è facoltativa. La dimensione massima e il numero dei parametri sono illimitati, a condizione tuttavia di disporre di memoria sufficiente.

<param_name>

Descrive un parametro della macro. I nomi dei parametri non distinguono tra maiuscole e minuscole. Non utilizzare virgolette, altrimenti il nome del parametro verrà considerato come testo e ignorato.

Ogni parametro utilizzato in una macro deve essere dichiarato nell'istruzione PARAMS e quando viene richiamata la macro, il richiamo deve includere un valore per ciascun parametro.

BEGIN

Inizia il corpo della macro. Deve essere specificato prima del corpo della macro.

<macro_body>

Il corpo della macro. La dimensione del corpo macro è illimitata, supponendo una memoria disponibile sufficiente. Un corpo macro può includere uno qualsiasi dei seguenti tipi di istruzioni:

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

END;

Conclude la definizione macro. Per completare la definizione è necessario il punto virgola.

Esempi

Esempio 1

Nell'esempio seguente viene definita una macro che accetta parametri.

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;

Esempio 2

Nell'esempio seguente viene definita una macro che non richiede parametri.

MACRO #option_defaults
BEGIN
GETINSERTS
GETUPDATES
GETDELETES
INSERTDELETES
END;

Esempio 3

L'esempio seguente definisce una macro denominata #assign_date che chiama un'altra macro denominata #make_date.

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