MACRO
有效對象
擷取與 Replicat
說明
使用 MACRO 參數來建立 Oracle GoldenGate 巨集。如需有關使用巨集的詳細資訊,包括如何正確呼叫巨集,請參閱使用巨集。
預設
無
語法
必須依照顯示的順序使用下列項目:
MACRO *#<macro_name>*
PARAMS (*#<param_name>* [, ...])
BEGIN
<macro_body>
END;
MACRO
開始巨集規格。
<#>
巨集字元。巨集和參數名稱必須以巨集字元開頭。以巨集字元為開頭之參數檔中的任何項目都會假設為巨集參數或巨集參數。
預設巨集字元為井字 (#) 字元,如下列範例所示:
MACRO #macro1
PARAMS (#param1, #param2)
您可以使用 MACROCHAR 參數變更巨集字元。
<macro_name>
巨集的名稱。巨集名稱必須是含有英數字元的一個字 (允許使用底線),且不區分大小寫。參數檔中的每個巨集名稱都必須是唯一的。不要使用引號,否則巨集名稱將被視為文字並予以忽略。
PARAMS
啟動參數子句。參數子句是選擇性的。參數大小和數目上限是無限制的,假設有足夠的記憶體可用。
<param_name>
描述巨集的參數。參數名稱不區分大小寫。請勿使用引號,否則參數名稱將被視為文字並予以忽略。
巨集中使用的每個參數都必須在 PARAMS 陳述式中宣告,當呼叫巨集時,呼叫必須包含每個參數的值。
BEGIN
開始巨集主體。必須在巨集主體之前指定。
<macro_body>
巨集的本體。巨集主體的大小為無限制,假設可用記憶體足夠。巨集主體可包含下列任一類型的陳述式:
- 簡單參數敘述句,如下所示:
COL1 = COL2
- 複雜的敘述句,如下所示:
COL1 = #val2
- 其他巨集的呼叫,如下所示:
#colmap(COL1, #sourcecol)
END;
包含巨集定義。需有分號才能完成定義。
範例
範例 1
下列範例定義使用參數的巨集。
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;
範例 2
下列範例定義了不需要參數的巨集。
MACRO #option_defaults
BEGIN
GETINSERTS
GETUPDATES
GETDELETES
INSERTDELETES
END;
範例 3
下列範例定義一個名為 #assign_date 的巨集,該巨集會呼叫另一個名為 #make_date 的巨集。
MACRO #assign_date
PARAMS (#target_col, #year, #month, #day)
BEGIN
#target_col = #make_date (#year, #month, #day)
END;