プライマリ・コンテンツに移動
Oracle® Databaseユーティリティ
12cリリース1 (12.1.0.2)
B71303-09
目次へ移動
目次
索引へ移動
索引

前
次

TABLES

デフォルト: デフォルト値は設定されていません。

用途

表モード・エクスポートの実行を指定します。

構文および説明

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つ表employeesjobsおよびdepartmentsをエクスポートするためにTABLESパラメータを使用する簡単な例を示します。ユーザーhrは、hrスキーマ内の表をエクスポートしているため、表名の前にスキーマ名を指定する必要はありません。

> expdp hr DIRECTORY=dpump_dir1 DUMPFILE=tables.dmp
TABLES=employees,jobs,departments

次の例では、ユーザーhrDATAPUMP_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をエクスポートします。