主コンテンツへ
Oracle® Fusion Middleware Oracle GoldenGateリファレンスfor Windows and UNIX
12c (12.2.0.1)
E70112-04
目次へ移動
目次

前
次

3.44 DDLSUBST

適用対象

ExtractおよびReplicat

説明

DDLSUBSTパラメータでは、DDL操作内の文字列を置換します。たとえば、ある表の名前を別の名前に置換したり、コメント内の文字列を置換したりできます。検索では、大/小文字は区別されません。文字列の中で引用符を表すには、二重引用符を使用します。

DDLSUBST使用のガイドライン

  • DDLSUBSTは、列名およびデータ型をターゲット上の別の列名やデータ型に変換する目的では使用しないでください。この方法でターゲット・オブジェクトの構造を変更すると、データがターゲットにレプリケートされたときにエラーが発生します。同様に、DDLSUBSTは、ターゲットDDL文の所有者および表名を変更する目的では使用しないでください。レプリケートされるDDL操作を異なるターゲット・オブジェクトにマップするときは、常にMAP文を使用してください。

  • DDLSUBSTは、パラメータ・ファイル内における相対順位にかかわらず、常にDDLパラメータよりも後に実行されます。フィルタリングが先に実行されるため、文字列置換で使用する基準に対応するフィルタリング基準を使用してください。次のパラメータ文を例に取り上げます。

    DDL INCLUDE OBJNAME fin.*
    DDLSUBST 'cust' WITH 'customers' INCLUDE OBJNAME sales.*
    

    この例では、INCLUDE文とDDLSUBST文のオブジェクトが異なるため、文字列置換は発生しません。finに所有されているオブジェクトはOracle GoldenGate DDL構成に含まれていますが、salesに所有されているオブジェクトは含まれていません。

  • DDLSUBSTパラメータは、複数使用できます。これらは、パラメータ・ファイルにリストされた順に実行されます。

  • コメントを含むOracle DDLに対して、コメントの文字列置換を実行する場合、DDLOPTIONSパラメータとともにREMOVECOMMENTS BEFOREオプションを使用しないでください。REMOVECOMMENTS BEFOREを使用すると、文字列置換が発生する前にコメントを削除します。コメントを削除し、かつ文字列置換を行う場合は、REMOVECOMMENTS AFTERオプションを使用してください。

  • データベースによって課される制限を除き、置換する文字列に最大サイズの制限はありません。文字列のサイズがデータベースの制限を越えると、この操作を実行しているExtractまたはReplicatプロセスは異常終了します。

デフォルト

置換なし

構文

DDLSUBST 'search_string' WITH 'replace_string'
[INCLUDE inclusion_clause | EXCLUDE exclusion_clause]
'search_string'

ソースDDL文に含まれる置換対象の文字列。文字列は一重引用符で囲みます。文字列で引用符を表すには、二重引用符を使用します。

WITH

必須のキーワード。

'replace_string'

ターゲットDDLで置換文字列として使用する文字列。文字列は一重引用符で囲みます。文字列で引用符を表すには、二重引用符を使用します。

INCLUDE inclusion_clause | EXCLUDE exclusion_clause

1つまたは複数のINCLUDEおよびEXCLUDE文を指定して、文字列置換ルールを適用するDDL操作をフィルタリングします。構文および使用方法は、DDLのフィルタリング・オプションを参照してください。

例1   

次の例では、finスキーマ内の表の文字列custを文字列customersに置換します。

DDLSUBST 'cust' WITH 'customers'
INCLUDE ALL OBJTYPE 'table' OBJNAME fin.*
例2   

次の例では、DDLコマンドに単語logfileが含まれている場合にのみ新しいディレクトリに置換します。検索文字列が複数回検出された場合、置換文字列は複数回挿入されます。

DDLSUBST '/file1/location1' WITH '/file2/location2' INCLUDE INSTR 'logfile'
例3   

次の例では、複数のDDLSUBST文を使用します。文はリストされている順番に実行されます。

DDLSUBST 'a' WITH 'b' INCLUDE ALL
DDLSUBST 'b' WITH 'c' INCLUDE ALL

前述の最終結果では、すべてのaおよびb文字列がcに置換されます。