DDLSUBST
Gültig für
Extract und Replicat
Beschreibung
Verwenden Sie den Parameter DDLSUBST, um Zeichenfolgen in einem DDL-Vorgang zu ersetzen. Beispiel: Sie können einen Tabellennamen durch einen anderen ersetzen oder eine Zeichenfolge in Kommentaren ersetzen. Die Suche beachtet die Groß-/Kleinschreibung nicht. Um ein Anführungszeichen in einer Zeichenfolge darzustellen, verwenden Sie doppelte Anführungszeichen.
Richtlinien zur Verwendung von DDLSUBST
-
Verwenden Sie
DDLSUBSTnicht, um Spaltennamen und Datentypen in ein anderes Ziel zu konvertieren. Eine solche Änderung der Struktur eines Zielobjekts führt zu Fehlern, wenn Daten darauf repliziert werden. Verwenden SieDDLSUBSTebenfalls nicht, um Eigentümer- und Tabellennamen in einerDDL-Zielanweisung zu ändern. Verwenden Sie immer eineMAP-Anweisung, um einen repliziertenDDL-Vorgang einem anderen Zielobjekt zuzuordnen. -
DDLSUBSTwird immer nach dem ParameterDDLausgeführt, unabhängig von der relativen Reihenfolge in der Parameterdatei. Da die Filterung zuerst ausgeführt wird, verwenden Sie Filterkriterien, die mit den Kriterien kompatibel sind, die Sie zum Ersetzen von Zeichenfolgen verwenden. Beispiel: Betrachten Sie die folgenden Parameteranweisungen:
DDL INCLUDE OBJNAME fin.*
DDLSUBST 'cust' WITH 'customers' INCLUDE OBJNAME sales.*
In diesem Beispiel tritt keine Ersetzung auf, weil die Objekte in den Anweisungen INCLUDE und DDLSUBST unterschiedlich sind. Die Objekte mit dem Eigentümer fin sind in der Oracle GoldenGate-Konfiguration DDL enthalten, die Objekte mit dem Eigentümer sales jedoch nicht.
-
Sie können mehrere
DDLSUBST-Parameter verwenden. Sie werden in der Reihenfolge ausgeführt, die in der Parameterdatei aufgeführt ist. -
Verwenden Sie für Oracle
DDL, das Kommentare enthält, den ParameterDDLOPTIONSnicht mit der OptionREMOVECOMMENTS BEFORE, wenn Sie Zeichenfolgen für diese Kommentare ersetzen.REMOVECOMMENTS BEFOREentfernt Kommentare, bevor Zeichenfolgen ersetzt werden. Um Kommentare zu entfernen, aber eine Zeichenfolgenersetzung zuzulassen, verwenden Sie die OptionREMOVECOMMENTS AFTER. -
Es gibt keine maximale Zeichenfolgengröße für Ersetzungen, außer der von der Datenbank vorgegebenen Grenze. Wenn die Zeichenfolgengröße das Datenbanklimit überschreitet, wird der Extract- oder Replicat-Prozess, der den Vorgang ausführt, abgebrochen.
Standard
Kein Ersatz
Syntax
DDLSUBST '<search_string>' WITH '<replace_string>'
[INCLUDE <inclusion_clause> | EXCLUDE <exclusion_clause>]
<'search_string'>
Die Zeichenfolge in der DDL-Quellanweisung, die ersetzt werden soll. Setzen Sie die Zeichenfolge in einfache Anführungszeichen. Um ein Anführungszeichen in einer Zeichenfolge darzustellen, verwenden Sie doppelte Anführungszeichen.
WITH
Erforderliches Schlüsselwort.
<'replace_string'>
Die Zeichenfolge, die Sie als Ersatz im Ziel DDL verwenden möchten. Setzen Sie die Zeichenfolge in einfache Anführungszeichen. Um ein Anführungszeichen in einer Zeichenfolge darzustellen, verwenden Sie doppelte Anführungszeichen.
INCLUDE <inclusion_clause> | EXCLUDE <exclusion_clause>
Gibt mindestens eine INCLUDE- und EXCLUDE-Anweisung an, um die DDL-Vorgänge zu filtern, für die die Zeichensubstitutionsregeln angewendet werden. Syntax und Verwendung finden Sie unter "DDL Filteroptionen".
Beispiele
Beispiel 1
Die folgende Zeichenfolge ersetzt die Zeichenfolge cust durch die Zeichenfolge customers für Tabellen im Schema fin.
DDLSUBST 'cust' WITH 'customers'
INCLUDE ALL OBJTYPE 'table' OBJNAME fin.*
Beispiel 2
Das folgende ersetzt ein neues Verzeichnis nur, wenn der Befehl DDL das Wort logfile enthält. Wenn die Suchzeichenfolge mehrmals gefunden wird, wird die Ersatzzeichenfolge mehrmals eingefügt.
DDLSUBST '/file1/location1' WITH '/file2/location2' INCLUDE INSTR 'logfile'
Beispiel 3
Im Folgenden werden mehrere DDLSUBST-Anweisungen verwendet, die in der angezeigten Reihenfolge ausgeführt werden.
DDLSUBST 'a' WITH 'b' INCLUDE ALL
DDLSUBST 'b' WITH 'c' INCLUDE ALL
Der Nettoeffekt der vorherigen Zeichenfolgen ersetzt alle a- und b-Zeichenfolgen durch c.