DDLSUBST
Valido per
Estrai e Replicat
Descrizione
Utilizzare il parametro DDLSUBST per sostituire le stringhe in un'operazione DDL. Ad esempio, è possibile sostituire un nome di tabella con un altro o sostituire una stringa all'interno dei commenti. La ricerca non fa distinzione tra maiuscole e minuscole. Per rappresentare una virgoletta in una stringa, utilizzare una virgoletta doppia.
Linee guida per l'utilizzo di DDLSUBST
-
Non utilizzare
DDLSUBSTper convertire i nomi delle colonne e i tipi di dati in elementi diversi nella destinazione. Se si modifica la struttura di un oggetto di destinazione in questo modo, si verificheranno errori durante la replica dei dati. Analogamente, non utilizzareDDLSUBSTper modificare il proprietario e i nomi delle tabelle in un'istruzioneDDLdi destinazione. Utilizzare sempre un'istruzioneMAPper mappare un'operazioneDDLreplicata a un altro oggetto di destinazione. -
DDLSUBSTviene sempre eseguito dopo il parametroDDL, indipendentemente dall'ordine relativo nel file dei parametri. Poiché il filtro viene eseguito per primo, utilizzare criteri di filtro compatibili con i criteri utilizzati per la sostituzione delle stringhe. Ad esempio, tenere presenti le istruzioni dei parametri riportate di seguito.
DDL INCLUDE OBJNAME fin.*
DDLSUBST 'cust' WITH 'customers' INCLUDE OBJNAME sales.*
In questo esempio non viene eseguita alcuna sostituzione perché gli oggetti nelle istruzioni INCLUDE e DDLSUBST sono diversi. Gli oggetti di proprietà di fin sono inclusi nella configurazione DDL di Oracle GoldenGate, ma gli oggetti di proprietà di sales non lo sono.
-
È possibile utilizzare più parametri
DDLSUBST. Eseguono nell'ordine indicato nel file dei parametri. -
Per Oracle
DDLche include commenti, non utilizzare il parametroDDLOPTIONScon l'opzioneREMOVECOMMENTS BEFOREse si esegue la sostituzione della stringa su tali commenti.REMOVECOMMENTS BEFORErimuove i commenti prima della sostituzione della stringa. Per rimuovere i commenti, ma consentire la sostituzione delle stringhe, utilizzare l'opzioneREMOVECOMMENTS AFTER. -
Non esiste una dimensione stringa massima per le sostituzioni, ad eccezione del limite imposto dal database. Se la dimensione della stringa supera il limite del database, il processo Extract o Replicat che sta eseguendo l'operazione viene interrotto.
Predefinito
Nessuna sostituzione
Sintassi
DDLSUBST '<search_string>' WITH '<replace_string>'
[INCLUDE <inclusion_clause> | EXCLUDE <exclusion_clause>]
<'search_string'>
La stringa nell'istruzione DDL di origine che si desidera sostituire. Racchiudere la stringa tra apici. Per rappresentare una virgoletta in una stringa, utilizzare una virgoletta doppia.
WITH
Parola chiave obbligatoria.
<'replace_string'>
La stringa che si desidera utilizzare come sostituzione nella destinazione DDL. Racchiudere la stringa tra apici. Per rappresentare una virgoletta in una stringa, utilizzare una virgoletta doppia.
INCLUDE <inclusion_clause> | EXCLUDE <exclusion_clause>
Specifica una o più istruzioni INCLUDE e EXCLUDE per filtrare le operazioni DDL per le quali vengono applicate le regole di sostituzione delle stringhe. Per la sintassi e l'uso, vedere "DDL Filtering Options".
Esempi
Esempio 1
La stringa cust viene sostituita dalla stringa customers per le tabelle nello schema fin.
DDLSUBST 'cust' WITH 'customers'
INCLUDE ALL OBJTYPE 'table' OBJNAME fin.*
Esempio 2
Di seguito viene sostituita una nuova directory solo se il comando DDL include la parola logfile. Se la stringa di ricerca viene trovata più volte, la stringa di sostituzione viene inserita più volte.
DDLSUBST '/file1/location1' WITH '/file2/location2' INCLUDE INSTR 'logfile'
Esempio 3
Di seguito vengono utilizzate più istruzioni DDLSUBST, che vengono eseguite nell'ordine mostrato.
DDLSUBST 'a' WITH 'b' INCLUDE ALL
DDLSUBST 'b' WITH 'c' INCLUDE ALL
L'effetto netto dei precedenti sostituisce tutte le stringhe a e b con c.