Platzhalter in Datenbankobjektnamen verwenden

Sie können Platzhalter für jeden Teil eines vollqualifizierten Objektnamens verwenden, sofern dies für die spezifische Datenbank unterstützt wird. Diese Namensteile können die folgenden sein: Container-, Datenbank- oder Katalogname, Eigentümer (Schema- oder Datenbankname) und Tabellen- oder Sequenzname. Einzelheiten zur Unterstützung von Objektnamen und Platzhaltern finden Sie im Oracle GoldenGate-Installations- und Konfigurationshandbuch für diese Datenbank.

Gegebenenfalls können Oracle GoldenGate-Parameter zwei Platzhaltertypen verwenden, um mehrere Objekte in einer Anweisung anzugeben:

Regeln für die Verwendung von Platzhaltern für Quellobjekte

Bei Quellobjekten können Sie das Sternchen allein oder mit einem Teilnamen verwenden. Beispiel: Die folgenden Quellspezifikationen sind gültig:

Die Parameter TABLE, MAP und SEQUENCE berücksichtigen die Groß-/Kleinschreibung und das Gebietsschema der Datenbank bei der Auflösung von Platzhaltern. Bei Datenbanken, bei denen die Groß-/Kleinschreibung beachtet oder die Groß-/Kleinschreibung nicht beachtet wird, entspricht der Platzhalter dem genauen Namen und der Groß-/Kleinschreibung. Beispiel: Wenn bei der Datenbank die Groß-/Kleinschreibung beachtet wird, entspricht SCHEMA.TABLE SCHEMA.TABLE, Schema.Table Schema.Table usw. Wenn bei der Datenbank die Groß-/Kleinschreibung nicht beachtet wird, wird beim Abgleich nicht zwischen Groß- und Kleinschreibung unterschieden.

Bei Datenbanken, bei denen in derselben Datenbankinstanz sowohl die Groß-/Kleinschreibung als auch die Groß-/Kleinschreibung beachtet werden kann, funktioniert das Platzhalterzeichen anders. Dabei werden Anführungszeichen verwendet, um die Groß-/Kleinschreibung zu erzwingen. Wenn ein Platzhalter allein für einen Quellnamen in einer TABLE-Anweisung verwendet wird, entspricht ein Sternchen einem beliebigen Zeichen, unabhängig davon, ob das Sternchen in Anführungszeichen steht. Die folgenden Anweisungen liefern dieselben Ergebnisse:

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

Ebenso entspricht ein Fragezeichen, das allein verwendet wird, jedem einzelnen Zeichen, unabhängig davon, ob es in Anführungszeichen steht oder nicht. Die folgenden Ergebnisse liefern dieselben Ergebnisse:

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

Wenn ein Fragezeichen oder ein Sternchen-Platzhalter mit anderen Zeichen verwendet wird, wird die Groß-/Kleinschreibung auf die Nicht-Platzhalter angewendet, aber der Platzhalter entspricht sowohl den Bezeichnungen, bei denen die Groß-/Kleinschreibung beachtet wird, als auch den Bezeichnungen, bei denen die Groß-/Kleinschreibung nicht beachtet wird.

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

Regeln zur Verwendung von Platzhaltern für Zielobjekte

Wenn Sie Platzhalter in der TARGET-Klausel einer MAP-Anweisung verwenden, müssen die Zielobjekte in der Zieldatenbank vorhanden sein. (Die Ausnahme ist, wenn die DDL-Replikation verwendet wird, wodurch neue Schemas und ihre Objekte beim Erstellen repliziert werden können.)

Bei Zielobjekten kann nur ein Sternchen verwendet werden. Wenn ein Sternchen-Platzhalter mit einem Teilnamen verwendet wird, ersetzt Replicat den Platzhalter durch den gesamten Namen des entsprechenden Quellobjekts. Daher sind Spezifikationen wie die folgenden falsch:

HQ.T

Die vorherigen Zuordnungen führen zu falschen Ergebnissen, da der Platzhalter in der Zielspezifikation durch T_TEST (den Namen eines Quellobjekts) ersetzt wird, wodurch der gesamte Zielname T_T_TESTn wird. Im Folgenden werden die falschen Ergebnisse dargestellt:

Die folgenden Beispiele zeigen die korrekte Verwendung von Sternchen-Platzhaltern.

MAP HQ.T_*, TARGET RPT.*;

Das vorstehende Beispiel erzeugt die folgenden korrekten Ergebnisse:

Fallback-Namenszuordnung

Oracle GoldenGate verfügt über einen Fallback-Zuordnungsmechanismus für den Fall, dass ein Quellname keinem Zielnamen zugeordnet werden kann. Wenn auf dem Ziel für ein Quellobjekt, bei dem die Groß-/Kleinschreibung beachtet wird, keine exakte Übereinstimmung gefunden werden kann, versucht Replicat, den Quellnamen in Groß- oder Kleinschreibung (abhängig vom Datenbanktyp) auf dem Ziel demselben Namen zuzuordnen. Die Fallback-Namenszuordnung wird durch die Parameter NAMEMATCH gesteuert. Weitere Informationen finden Sie in der Referenz zu Parametern und Funktionen für Oracle GoldenGate.

Sternchen oder Fragezeichen als Literale in Objektnamen

Wenn der Name eines Objekts selbst ein Sternchen oder ein Fragezeichen enthält, muss der gesamte Name maskiert und in doppelte Anführungszeichen gesetzt werden, wie im folgenden Beispiel:

TABLE HT."\?ABC";

Wie Platzhalter aufgelöst werden

Wenn ein Objektname mit Platzhaltern versehen ist, tritt die Auflösung für dieses Objekt standardmäßig auf, wenn die erste Zeile aus dem Quellobjekt verarbeitet wird. (Wenn der Name eines Objekts explizit angegeben wird, erfolgt die Auflösung hingegen beim Hochfahren des Prozesses.) Um die Regeln zum Auflösen von Platzhaltern zu ändern, verwenden Sie den Parameter WILDCARDRESOLVE. Der Standardwert ist DYNAMIC.

Objekte aus Wildcard-Spezifikationen ausschließen

Sie können die Verwendung der Platzhalterobjektauswahl mit dem expliziten Objektausschluss kombinieren, indem Sie die Parameter EXCLUDEWILDCARDOBJECTSONLY, CATALOGEXCLUDE, SCHEMAEXCLUDE, MAPEXCLUDE und TABLEEXCLUDE verwenden.