DDLSUBST
Durée de validité
Extraction et réplication
Description
Utilisez le paramètre DDLSUBST pour remplacer des chaînes dans une opération DDL. Par exemple, vous pouvez remplacer un nom de table par un autre ou remplacer une chaîne dans les commentaires. La recherche ne fait pas la distinction entre les majuscules et les minuscules. Pour représenter un guillemet dans une chaîne, utilisez un guillemet double.
Instructions d'utilisation de DDLSUBST
-
N'utilisez pas
DDLSUBSTpour convertir les noms de colonne et les types de données en quelque chose de différent sur la cible. La modification de la structure d'un objet cible de cette manière entraînera des erreurs lors de la réplication des données vers cet objet. De même, n'utilisez pasDDLSUBSTpour modifier les noms de propriétaire et de table dans une instructionDDLcible. Utilisez toujours une instructionMAPpour mettre en correspondance une opérationDDLrépliquée avec un autre objet cible. -
DDLSUBSTs'exécute toujours après le paramètreDDL, quel que soit leur ordre relatif dans le fichier de paramètres. Comme le filtrage s'exécute en premier, utilisez des critères de filtrage compatibles avec les critères que vous utilisez pour la substitution de chaîne. Par exemple, supposons ce qui suit :
DDL INCLUDE OBJNAME fin.*
DDLSUBST 'cust' WITH 'customers' INCLUDE OBJNAME sales.*
Dans cet exemple, aucune substitution ne se produit car les objets des instructions INCLUDE et DDLSUBST sont différents. Les objets appartenant à fin sont inclus dans la configuration DDL d'Oracle GoldenGate, mais pas les objets appartenant à sales.
-
Vous pouvez utiliser plusieurs paramètres
DDLSUBST. Ils s'exécutent dans l'ordre indiqué dans le fichier de paramètres. -
Pour Oracle
DDLqui inclut des commentaires, n'utilisez pas le paramètreDDLOPTIONSavec l'optionREMOVECOMMENTS BEFOREsi vous effectuez une substitution de chaîne sur ces commentaires.REMOVECOMMENTS BEFOREsupprime les commentaires avant la substitution de chaîne. Pour enlever des commentaires, mais autoriser la substitution de chaîne, utilisez l'optionREMOVECOMMENTS AFTER. -
Il n'y a pas de taille de chaîne maximale pour les substitutions, autre que la limite imposée par la base de données. Si la taille de la chaîne dépasse la limite de base de données, le processus Extract ou Replicat qui exécute l'opération est abandonné.
Valeur par défaut
Aucune substitution
Syntaxe
DDLSUBST '<search_string>' WITH '<replace_string>'
[INCLUDE <inclusion_clause> | EXCLUDE <exclusion_clause>]
<'search_string'>
Chaîne dans l'instruction DDL source à remplacer. Placez la chaîne entre apostrophes. Pour représenter un guillemet dans une chaîne, utilisez un guillemet double.
WITH
Mot-clé requis.
<'replace_string'>
Chaîne à utiliser en tant que remplacement dans la cible DDL. Placez la chaîne entre apostrophes. Pour représenter un guillemet dans une chaîne, utilisez un guillemet double.
INCLUDE <inclusion_clause> | EXCLUDE <exclusion_clause>
Spécifie une ou plusieurs instructions INCLUDE et EXCLUDE pour filtrer les opérations DDL pour lesquelles les règles de substitution de chaîne sont appliquées. Reportez-vous à la section "DDL Filtering Options" pour connaître la syntaxe et l'utilisation.
Exemples
Exemple 1
La chaîne cust est remplacée par la chaîne customers pour les tables du schéma fin.
DDLSUBST 'cust' WITH 'customers'
INCLUDE ALL OBJTYPE 'table' OBJNAME fin.*
Exemple 2
L'élément suivant remplace un nouveau répertoire uniquement si la commande DDL inclut le mot logfile. Si la chaîne de recherche est trouvée plusieurs fois, la chaîne de remplacement est insérée plusieurs fois.
DDLSUBST '/file1/location1' WITH '/file2/location2' INCLUDE INSTR 'logfile'
Exemple 3
Les instructions suivantes utilisent plusieurs instructions DDLSUBST, qui s'exécutent dans l'ordre indiqué.
DDLSUBST 'a' WITH 'b' INCLUDE ALL
DDLSUBST 'b' WITH 'c' INCLUDE ALL
L'effet net des chaînes précédentes remplace toutes les chaînes a et b par c.