デフォルト: デフォルト値は設定されていません。
用途
表モード・エクスポートの実行を指定します。
構文および説明
TABLES=[schema_name.]table_name[:partition_name] [, ...]
このモードを使用したエクスポート対象を、フィルタ処理によってより詳細に制限できます(詳細は、「エクスポート操作中のフィルタ処理」を参照してください)。表およびパーティションまたはサブパーティションをカンマで区切ったリストを指定して、エクスポート対象のデータおよびメタデータをフィルタ処理できます。パーティションの名前を指定する場合は、関連表にあるパーティションまたはサブパーティションの名前にする必要があります。指定した表、パーティションおよびそれらの依存オブジェクトのみがアンロードされます。
パーティション表全体をエクスポートすると、パーティション表として全体的にインポートされます。これが当てはまらないのは、インポート時にPARTITION_OPTIONS=DEPARTITION
が指定されている場合のみです。
指定する表名の先頭にスキーマ名を修飾できます。デフォルトのスキーマは、現在のユーザーのスキーマです。自分のスキーマ以外のスキーマを指定するには、DATAPUMP_EXP_FULL_DATABASE
ロールが必要です。
ワイルドカード文字%を使用して、表名およびパーティション名を指定できます。
表名には次の制限があります。
デフォルトでは、表名は大文字でデータベースに格納されます。表名が大文字と小文字または小文字のみで表記され、大/小文字を区別する場合、名前を引用符で囲む必要があります。したがって、表名は、データベースに格納されている表名と完全に一致するように指定する必要があります。
ただし、オペレーティング・システムによっては、コマンドラインの引用符自体をエスケープする必要がある場合があります。次に、異なるエクスポート・モードで大/小文字の区別を保持する方法を示します。
コマンドライン・モード
TABLES='\"Emp\"'
パラメータ・ファイル・モード
TABLES='"Emp"'
表名を引用符で囲まないかぎり、コマンドラインで指定する表名にシャープ(#)記号は使用できません。同様に、パラメータ・ファイルでは、表名が引用符で囲まれていないかぎり、表名にシャープ(#)記号を使用すると、エクスポート・ユーティリティではシャープ(#)記号より右側の文字がコメントとして解釈されます。
たとえば、パラメータ・ファイルに次のコマンドラインが記述されている場合、エクスポート・ユーティリティではemp#
の右側がすべてコメントとして解釈されるため、表dept
およびmydata
はエクスポートされません。
TABLES=(emp#, dept, mydata)
ただし、パラメータ・ファイルに次の行が含まれる場合は、emp#
が引用符で囲まれているため、エクスポート・ユーティリティは3つの表をすべてエクスポートします。
TABLES=('"emp#"', dept, mydata)
注意:
オペレーティング・システムによっては、一重引用符を使用する必要がある場合と、二重引用符を使用する必要がある場合があります。ご使用のオペレーティング・システム固有のドキュメントで確認してください。表のネーミング方法に制限があるオペレーティング・システムもあります。
たとえば、UNIXのCシェルではドル記号($)やシャープ(#)(またはその他の特殊文字)には特別な意味があります。これらの文字をシェルを介してエクスポートするには、エスケープ文字を使用する必要があります。
表モード・エクスポート中のトランスポータブル・オプションの使用
表モード・エクスポート中にトランスポータブル・オプションを使用するには、TRANSPORTABLE=ALWAYS
パラメータとTABLES
パラメータを組み合せて指定します。指定した表、パーティションまたはサブパーティションのメタデータはダンプ・ファイルにエクスポートされます。実際のデータを移動するには、データ・ファイルをターゲット・データベースにコピーします。
表のパーティションの一部のみをエクスポートし、TRANSPORTABLE=ALWAYS
パラメータを使用すると、インポート時にそれぞれのパーティションが非パーティション表になります。
制限事項
相互スキーマ参照はエクスポートされません。たとえば、指定されたいずれかのスキーマ内の表にトリガーが定義されていても、そのトリガーが、明示的に指定されていないスキーマ内に常駐している場合はエクスポートされません。
表で使用される型は、表モードではエクスポートされません。後でダンプ・ファイルをインポートするときにインポート先のデータベースに型が存在しない場合、表の作成は正常に実行されません。
TABLES
パラメータの値としてのシノニムの使用はサポートされていません。たとえば、hr
スキーマのregions
表にregn
のシノニムが存在する場合、TABLES=regn
を使用すると無効になります。この場合、エラーが返されます。
表名にワイルド・カード文字%を含む表のエクスポートは、表がパーティションの場合はサポートされません。
TABLES
パラメータに指定する表名のリストの長さは、最大4MBに制限されます。ただし、NETWORK_LINK
パラメータで10.2.0.3以前のOracle Databaseまたは読取り専用のデータベースが設定されている場合は異なります。この場合の上限は4KBです。
エクスポートに対してTRANSPORTABLE=ALWAYS
も設定されている場合、1つの表からのパーティションのみを指定できます。
例
次の例に、hr
スキーマにある3つ表employees
、jobs
およびdepartments
をエクスポートするためにTABLES
パラメータを使用する簡単な例を示します。ユーザーhr
は、hr
スキーマ内の表をエクスポートしているため、表名の前にスキーマ名を指定する必要はありません。
> expdp hr DIRECTORY=dpump_dir1 DUMPFILE=tables.dmp TABLES=employees,jobs,departments
次の例では、ユーザーhr
にDATAPUMP_EXP_FULL_DATABASE
ロールが付与されていることを前提としています。ここでは、TABLES
パラメータを使用したパーティションのエクスポートを示します。
> expdp hr DIRECTORY=dpump_dir1 DUMPFILE=tables_part.dmp TABLES=sh.sales:sales_Q1_2012,sh.sales:sales_Q2_2012
この例では、sh
スキーマのsales
表から、パーティションsales_Q1_2012
およびsales_Q2_2012
をエクスポートします。
関連項目: