在資料庫物件名稱中使用萬用字元

如果特定資料庫支援,您可以在完整物件名稱的任何部分使用萬用字元。這些名稱部分可以是下列名稱:容器、資料庫或目錄名稱、擁有者 (綱要或資料庫名稱),以及表格或順序名稱。如需有關如何支援物件名稱和萬用字元的詳細資訊,請參閱該資料庫的 Oracle GoldenGate 安裝與組態指南。

在適當情況下,Oracle GoldenGate 參數允許使用兩種萬用字元類型,在單一敘述句中指定多個物件:

使用來源物件萬用字元的規則

對於來源物件,您可以單獨使用星號或部份名稱。例如,下列來源規格有效:

TABLE、MAP 和 SEQUENCE 參數會將資料庫的區分大小寫和地區設定納入考量,以進行萬用字元解析。對於建立為區分大小寫或不區分大小寫的資料庫,萬用字元會比對確實的名稱和大小寫。例如,如果資料庫區分大小寫,則 SCHEMA.TABLE 會與 SCHEMA.TABLE 比對,Schema.Table 會與 Schema.Table 比對等等。如果資料庫不區分大小寫,則比對不區分大小寫。

對於在同一個資料庫執行處理中同時具有區分大小寫與不區分大小寫的物件名稱的資料庫,使用引號來強制區分大小寫,萬用字元的運作方式會有所不同。單獨用於 TABLE 敘述句中的來源名稱時,星號萬用字元會比對任何字元,無論星號是否在引號內。下列陳述式會產生相同的結果:

TABLE hr.*;
TABLE hr."*";

同樣地,單獨使用的問號萬用字元會比對任何單一字元,無論是否在引號內。下列結果會產生相同的結果:

TABLE hr.?;
TABLE hr."?";

如果問號或星號萬用字元與其他字元搭配使用,則會將區分大小寫套用至非萬用字元,但萬用字元會同時比對區分大小寫與不區分大小寫的名稱。

TABLE hr."abc*";
TABLE hr."abc?";
TABLE hr.abc*;
TABLE hr.abc?;

針對目標物件使用萬用字元的規則

在 MAP 敘述句的 TARGET 子句中使用萬用字元時,目標物件必須存在於目標資料庫中。(異常狀況是在使用 DDL 複製時,允許在建立新綱要及其物件時進行複製。)

對於目標物件,只能使用星號。如果搭配部分名稱使用星號萬用字元,Replicat 會將萬用字元取代為對應來源物件的整個名稱。因此,像是下列情況的規格不正確:

HQ.T

前面的對應會產生不正確的結果,因為目標設定中的萬用字元會被取代為 T_TEST (來源物件的名稱),使整個目標名稱為 T_T_TEST n 。以下說明不正確的結果:

下列範例顯示星號萬用字元的正確用法。

MAP HQ.T_*, TARGET RPT.*;

上述範例會產生下列正確結果:

後援名稱對應

如果來源名稱無法對應至目標名稱,則 Oracle GoldenGate 具有後備對應機制。如果目標上找不到完全相符的來源物件 (區分大小寫),Replicat 會嘗試將來源名稱對應至目標上相同名稱 (視資料庫類型而定)。備用名稱對應由 NAMEMATCH 參數控制。如需詳細資訊,請參閱Oracle GoldenGate 的參數與函數參照。

物件名稱中的星號或問號標示為常值

如果物件名稱包含星號或問號,則必須遁離整個名稱,並放置在雙引號內,如下列範例所示:

TABLE HT."\?ABC";

如何解析萬用字元

依預設,當物件名稱是萬用字元時,處理來源物件的第一列時,就會解析該物件。(相反地,明確說明物件的名稱時,會在程序啟動時進行解析)。若要變更解析萬用字元的規則,請使用 WILDCARDRESOLVE 參數。預設值為 DYNAMIC。

從萬用字元規格排除物件

您可以使用 EXCLUDEWILDCARDOBJECTSONLY、CATALOGEXCLUDE、SCHEMAEXCLUDE、MAPEXCLUDE 和 TABLEEXCLUDE 參數,將萬用字元物件選擇的使用與明確的物件排除結合。