ヘッダーをスキップ
Oracle® Database PL/SQLパッケージおよびタイプ・リファレンス
11g リリース2(11.2)
B56262-06
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

46 DBMS_DATAPUMP

DBMS_DATAPUMPパッケージは、データおよびメタデータの両方を含むデータベースの一部または全体をデータベース間で移動するために使用します。


関連項目:

DBMS_DATAPUMP APIの背後にある概念とその機能、およびデータ・ポンプ・エクスポート・ユーティリティとインポート・ユーティリティに実装する方法の詳細は、『Oracle Databaseユーティリティ』を参照してください。

この章では、次の項目について説明します。


DBMS_DATAPUMPの使用方法

この項では、DBMS_DATAPUMPパッケージの使用に関連する項目について説明します。


概要

DBMS_DATAPUMPによって提供されるサポートおよび機能は次のとおりです。

  • ソース・データベースとターゲット・データベースで、異なるハードウェア、オペレーティング・システム、キャラクタ・セットおよびタイムゾーンを利用できます。

  • Oracle Database 11g内に存在するすべてのオブジェクト・タイプとデータ・タイプがサポートされます。

  • 中間ファイルを使用しなくても、データおよびメタデータをデータベース間で転送できます。

  • データベースのサブセットを、オブジェクト・タイプおよびオブジェクト名に基づいて移動できます。

  • スキーマ名、データファイル名および表領域名を、インポート時に変換できます。

  • 元のジョブからデータやメタデータを複製または省略しないで、以前に中断したエクスポート・ジョブおよびインポート・ジョブを再開できます。

  • エクスポート・ジョブまたはインポート・ジョブに適用されたリソースを変更できます。

  • オラクル社独自の書式のデータをアンロードおよびロードできます。


セキュリティ・モデル

DBMS_DATAPUMPパッケージのセキュリティは、ロールを使用して実装されます。

ロール

DATAPUMP_EXP_FULL_DATABASEロールおよびDATAPUMP_IMP_FULL_DATABASEロールを使用すると、権限のあるユーザーがこのAPIをフルに利用できます。データ・ポンプAPIはこれらのロールを使用して、権限のあるアプリケーション・ロールを、ジョブを構成する各プロセスに割り当てるべきかどうかを決定します。

DATAPUMP_EXP_FULL_DATABASE

DATAPUMP_EXP_FULL_DATABASEロールは、エクスポート操作のみに影響を与えます。これらの操作を行うユーザーは、次のことを実行できます。

  • 使用するスキーマの範囲外の操作の実行

  • 他のユーザーによって開始されたジョブの監視

  • 権限のないユーザーが参照できないオブジェクト(TABLESPACE定義など)のエクスポート

SYSスキーマにDATAPUMP_EXP_FULL_DATABASEロールは割り当てられていませんが、データ・ポンプによって実行されDATAPUMP_EXP_FULL_DATABASEロールを必要とするすべてのセキュリティ・チェックで、SYSスキーマへのアクセス権限も付与されます。


DATAPUMP_IMP_FULL_DATABASE

DATAPUMP_IMP_FULL_DATABASEは、インポート操作およびSQL_FILE操作のみに影響を与えます。これらの操作を行うユーザーは、次のことを実行できます。

  • 使用するスキーマの範囲外の操作の実行

  • 他のユーザーによって開始されたジョブの監視

  • 権限のないユーザーが作成できないオブジェクト(DIRECTORY定義など)のインポート

SYSスキーマにDATAPUMP_IMP_FULL_DATABASEロールは割り当てられていませんが、データ・ポンプによって実行されDATAPUMP_IMP_FULL_DATABASEロールを必要とするすべてのセキュリティ・チェックで、SYSスキーマへのアクセス権限も付与されます。



定数

いくつかのパブリック定数が、DBMS_DATAPUMP.GET_STATUSプロシージャで使用するために定義されています。これらの定数はすべて、DBMS_DATAPUMPパッケージの一部として定義されます。これらの定数を参照するには、DBMS_DATAPUMP.という接頭辞を付け、続けて次に示す記号を付ける必要があります。

マスク・ビット定義

次のマスク・ビット定義では、データの戻り値をDBMS_DATAPUMP.GET_STATUSプロシージャで制御します。

  • KU$_STATUS_WIP CONSTANT BINARY_INTEGER := 1;

  • KU$_STATUS_JOB_DESC CONSTANT BINARY_INTEGER := 2;

  • KU$_STATUS_JOB_STATUS CONSTANT BINARY_INTEGER := 4;

  • KU$_STATUS_JOB_ERROR CONSTANT BINARY_INTEGER := 8;

ダンプ・ファイル・タイプ定義

次の定義では、DBMS_DATAPUMP.GET_STATUSプロシージャで戻されるダンプ・ファイルのタイプを指定します。

  • KU$_DUMPFILE_TYPE_DISK CONSTANT BINARY_INTEGER := 0;

  • KU$_DUMPFILE_TYPE_TEMPLATE CONSTANT BINARY_INTEGER := 3;


データ構造

DBMS_DATAPUMPパッケージは、OBJECTタイプを定義します。この項で説明するタイプは、SYSスキーマ内で定義され、GET_STATUSファンクションで使用されます。これらのタイプの定義方法および使用方法は、一般的な方法と異なる場合があります。この項は注意して読んでください。

GET_STATUSプロシージャで使用するために定義されたタイプのコレクションは、バージョンに固有であり、各タイプの名前にバージョン情報が含まれています。これらのタイプはいったん導入されると、Oracle Databaseの今後のバージョンでも常に提供、サポートされ、変更はありません。ただし、Oracle Databaseの今後のバージョンでこれらのタイプの新しいバージョンが作成され、新規情報や異なる情報が提供される可能性があります。この新バージョンでは、タイプ名に新しいバージョン情報が組み込まれます。

たとえば、Oracle Database 10gリリース1(10.1)にはsys.ku$_Status1010タイプがありますが、Oracle Databaseの次のリリースではsys.ku$_Status1110タイプが定義される可能性があります。どちらのタイプもGET_STATUSプロシージャで使用できます。

GET_STATUSプロシージャで使用されるそれぞれのタイプには、パブリック・シノニムが定義されています。これによってタイプが使いやすくなるうえ、タイプが常駐する実際のタイプ名やスキーマに行われる変更を気にする必要がありません。オラクル社では、可能なかぎりパブリック・シノニムを使用することをお薦めします。

それぞれのタイプには、バージョン固有のシノニムと汎用的なシノニムがあります。たとえば、sys.ku$_Status1010タイプには、バージョン固有のシノニムku$_Status1010が定義されています。

汎用的なシノニムは、常に最新バージョンのタイプを示します。たとえばOracle Database 10gリリース1では、汎用シノニムku$_Statusku$_Status1010として定義されます。しかし今後のリリースでは、sys.ku$Status1110に対するシノニムがku$_Status1110となる可能性があります。この場合、汎用シノニムku$_Statusは常に最新の定義を示すため、ku$_Status1010ではなくku$_Status1110を示すことになります。

バージョン固有のシノニムと汎用シノニムのどちらを使用するかにより、作業内容が大幅に異なります。バージョン固有の名前を使用すると、これらのタイプは引き続き存在しサポートされるため、Oracle Databaseの今後のリリースに変更があってもコードが保護されます。ただし、新しい情報にアクセスするには、コードを変更し、各タイプに新しいシノニム名を使用する必要があります。汎用名を使用すると、常にタイプの最新の定義が必要になり、Oracle Databaseのリリースに変更があっても対処できるように備えておく必要があります。

現在使用しているOracle Databaseのバージョンが変更されると、汎用シノニム名を使用してタイプにアクセスするすべてのCコードを再コンパイルする必要があります。


注意:

PL/SQL以外の言語では、タイプの定義がバージョン固有の定義に適合していることを確認する必要があります。


関連項目:

タイプの使用方法の詳細は、「GET_STATUSプロシージャ」を参照してください。


データ構造: オブジェクト・タイプ

DBMS_DATAPUMPパッケージは、次の種類のOBJECTタイプを定義します。

ワーカー・ステータス・タイプ

ワーカー・ステータス・タイプは、ジョブ内の個々のワーカー・プロセスで行っている内容について示します。処理中のオブジェクトのスキーマ、オブジェクト名およびオブジェクト・タイプが表示されます。ユーザー・データを処理するワーカーの場合は、パーティション化された表のパーティション名(存在する場合)、パーティション内で処理されるバイト数およびパーティション内で処理される行数も表示されます。メタデータを処理するワーカーの場合は、処理された最後のオブジェクトのステータスが表示されます。アイドル・スレッドのステータスは表示されません。

percent_doneは、処理中の現行のデータ項目について完了した割合を示します。メタデータ・オブジェクトの場合は更新されません。

ワーカー・ステータス・タイプは次のように定義します。

CREATE TYPE sys.ku$_WorkerStatus1010 AS OBJECT (
               worker_number      NUMBER,
               process_name       VARCHAR2(30),
               state              VARCHAR2(30),
               schema             VARCHAR2(30),
               name               VARCHAR2(4000),
               object_type        VARCHAR2(200),
               partition          VARCHAR2(30),
               completed_objects  NUMBER,
               total_objects      NUMBER,
               completed_rows     NUMBER,
               completed_bytes    NUMBER,
               percent_done       NUMBER) 
 
CREATE OR REPLACE PUBLIC SYNONYM ku$_WorkerStatus1010
  FOR sys.ku$_WorkerStatus1010;
CREATE TYPE sys.ku$_WorkerStatus1020 AS OBJECT (
               worker_number     NUMBER,        --  Worker process identifier
               process_name      VARCHAR2(30),  --  Worker process name
               state             VARCHAR2(30),  --  Worker process state
               schema            VARCHAR2(30),  --  Schema name
               name              VARCHAR2(4000),--  Object name
               object_type       VARCHAR2(200), --  Object type
               partition         VARCHAR2(30),  --  Partition name
               completed_objects NUMBER,        --  Completed number of objects
               total_objects     NUMBER,        --  Total number of objects
               completed_rows    NUMBER,        --  Number of rows completed
               completed_bytes   NUMBER,        --  Number of bytes completed
               percent_done      NUMBER,        --  Percent done current object
               degree            NUMBER         --  Degree of parallelism)
 
CREATE OR REPLACE PUBLIC SYNONYM ku$_WorkerStatus1020
  FOR sys.ku$_WorkerStatus1020;
 
CREATE OR REPLACE PUBLIC SYNONYM ku$_WorkerStatus FOR ku$_WorkerStatus1020;
 
CREATE TYPE sys.ku$_WorkerStatusList1010 AS TABLE OF sys.ku$_WorkerStatus1010
 
CREATE TYPE sys.ku$_WorkerStatusList1020 AS TABLE OF sys.ku$_WorkerStatus1020
 
CREATE OR REPLACE PUBLIC SYNONYM ku$_WorkerStatusList1010
  FOR sys.ku$_WorkerStatusList1010;
CREATE OR REPLACE PUBLIC SYNONYM ku$_WorkerStatusList1020
  FOR sys.ku$_WorkerStatusList1020;
 
CREATE OR REPLACE PUBLIC SYNONYM ku$_WorkerStatusList
  FOR ku$_WorkerStatusList1020;

ログ・エントリ・タイプおよびエラー・タイプ

ログ・エントリ・タイプとエラー・タイプでは、連結されたクライアントとログ・ストリームに対して、情報テキストとエラー・テキストを提供します。ku$LogLine.errorNumberタイプは、情報メッセージについてはNULLが設定されますが、エラー・メッセージに対しては値が指定されます。個々のログ・エントリには、複数行のテキスト・メッセージを含めることができます。

ログ・エントリ・タイプとエラー・タイプは、次のように定義します。

CREATE TYPE sys.ku$_LogLine1010 AS OBJECT (
               logLineNumber   NUMBER,
               errorNumber     NUMBER,
               LogText         VARCHAR2(2000))
 
CREATE OR REPLACE PUBLIC SYNONYM ku$_LogLine1010 FOR sys.ku$_LogLine1010;
CREATE OR REPLACE PUBLIC SYNONYM ku$_LogLine1020 FOR sys.ku$_LogLine1010;
CREATE OR REPLACE PUBLIC SYNONYM ku$_LogLine FOR ku$_LogLine1010;
CREATE TYPE sys.ku$_LogEntry1010 AS TABLE OF sys.ku$_LogLine1010
 
CREATE OR REPLACE PUBLIC SYNONYM ku$_LogEntry1010 FOR sys.ku$_LogEntry1010;
CREATE OR REPLACE PUBLIC SYNONYM ku$_LogEntry1020 FOR sys.ku$_LogEntry1010;
CREATE OR REPLACE PUBLIC SYNONYM ku$_LogEntry FOR ku$_LogEntry1010;

ジョブ・ステータス・タイプ

ジョブ・ステータス・タイプは、ジョブに関するステータスを戻します。通常、ステータスは実行中のジョブに関するものですが、クライアントが連結したときには、停止したジョブに関するステータスが示される場合もあります。通常は、ステータスは、クライアントが対話モードからステータスを明示的に要求した場合は連結時に示され、クライアントが定期的にステータスを要求している場合はN秒ごとに示されます。

ジョブ・ステータス・タイプは次のように定義します(percent_doneはデータのみに適用されます)。

CREATE TYPE sys.ku$_DumpFile1010 IS OBJECT (
               file_name          VARCHAR2(4000), -- Fully-qualified name
               file_type          NUMBER,         -- 0=Disk, 1=Pipe, etc.
               file_size          NUMBER,         -- Its length in bytes
               file_bytes_written NUMBER          -- Bytes written so far)

CREATE OR REPLACE PUBLIC SYNONYM ku$_DumpFile1010 FOR sys.ku$_DumpFile1010;
CREATE OR REPLACE PUBLIC SYNONYM ku$_DumpFile1020 FOR sys.ku$_DumpFile1010;
CREATE OR REPLACE PUBLIC SYNONYM ku$_DumpFile FOR ku$_DumpFile1010;
 
CREATE TYPE sys.ku$_DumpFileSet1010 AS TABLE OF sys.ku$_DumpFile1010;
 
CREATE OR REPLACE PUBLIC SYNONYM ku$_DumpFileSet1010 FOR 
  sys.ku$_DumpFileSet1010;
CREATE OR REPLACE PUBLIC SYNONYM ku$_DumpFileSet1020 FOR 
  sys.ku$_DumpFileSet1010;
 
CREATE OR REPLACE PUBLIC SYNONYM ku$_DumpFileSet FOR ku$_DumpFileSet1010;
 
CREATE TYPE sys.ku$_JobStatus1010 IS OBJECT (
               job_name            VARCHAR2(30),
               operation           VARCHAR2(30),
               job_mode            VARCHAR2(30),
               bytes_processed     NUMBER,
               percent_done        NUMBER,
               degree              NUMBER,
               error_count         NUMBER,
               state               VARCHAR2(30),
               phase               NUMBER,
               restart_count       NUMBER,
               worker_status_list  ku$_WorkerStatusList1010,
               files               ku$_DumpFileSet1010)
 
CREATE PUBLIC SYNONYM ku$_JobStatus1010 FOR 
   sys.ku$_JobStatus1010;
 
CREATE TYPE sys.ku$_JobStatus1020 IS OBJECT (
              job_name           VARCHAR2(30),             -- Name of the job
              operation          VARCHAR2(30),             -- Current operation
              job_mode           VARCHAR2(30),             -- Current mode
              bytes_processed    NUMBER,                   -- Bytes so far
              total_bytes        NUMBER,                   -- Total bytes for job
              percent_done       NUMBER,                   -- Percent done
              degree             NUMBER,                   -- Of job parallelism
              error_count        NUMBER,                   -- #errors so far
              state              VARCHAR2(30),             -- Current job state
              phase              NUMBER,                   -- Job phase
              restart_count      NUMBER,                   -- #Job restarts
              worker_status_list ku$_WorkerStatusList1020, -- job worker processes
              files              ku$_DumpFileSet1010       -- Dump file info)
 
CREATE OR REPLACE PUBLIC SYNONYM ku$_JobStatus1020 FOR   sys.ku$_JobStatus1020;
 
CREATE OR REPLACE PUBLIC SYNONYM ku$_JobStatus FOR ku$_JobStatus1020;

ジョブ記述タイプ

ジョブ記述タイプは、パラメータ設定やダンプ・ファイル・セットのメンバーなど、ジョブに関するすべての環境情報を保管します。いくつかの下位タイプも指定する必要があります。

ジョブ記述タイプは次のように定義します。

CREATE TYPE sys.ku$_ParamValue1010 AS OBJECT (
               param_name     VARCHAR2(30),
               param_op       VARCHAR2(30),
               param_type     VARCHAR2(30),
               param_length   NUMBER,
               param_value_n  NUMBER,
               param_value_t  VARCHAR2(4000));
 
CREATE OR REPLACE PUBLIC SYNONYM ku$_ParamValue1010 FOR sys.ku$_ParamValue1010;
CREATE OR REPLACE PUBLIC SYNONYM ku$_ParamValue1020 FOR sys.ku$_ParamValue1010;
CREATE OR REPLACE PUBLIC SYNONYM ku$_ParamValue FOR ku$_ParamValue1010;
 
CREATE TYPE sys.ku$_ParamValues1010 AS TABLE OF sys.ku$_ParamValue1010;
 
CREATE OR REPLACE PUBLIC SYNONYM ku$_ParamValues1010 FOR 
  sys.ku$_ParamValues1010;
CREATE OR REPLACE PUBLIC SYNONYM ku$_ParamValues1020 FOR 
  sys.ku$_ParamValues1010;
CREATE OR REPLACE PUBLIC SYNONYM ku$_ParamValues FOR ku$_ParamValues1010;
 
CREATE TYPE sys.ku$_JobDesc1010 AS OBJECT (
               job_name       VARCHAR2(30),
               guid           RAW(16),
               operation      VARCHAR2(30),
               job_mode       VARCHAR2(30),
               remote_link    VARCHAR2(4000),
               owner          VARCHAR2(30),
               instance       VARCHAR2(16),
               db_version     VARCHAR2(30),
               creator_privs  VARCHAR2(30),
               start_time     DATE,
               max_degree     NUMBER,
               log_file       VARCHAR2(4000),
               sql_file       VARCHAR2(4000),
               params         ku$_ParamValues1010)
 
CREATE OR REPLACE PUBLIC SYNONYM ku$_JobDesc1010 FOR sys.ku$_JobDesc1010;
 
CREATE TYPE sys.ku$_JobDesc1020 IS OBJECT (
               job_name        VARCHAR2(30),     -- The job name
               guid            RAW(16),          -- The job GUID
               operation       VARCHAR2(30),     -- Current operation
               job_mode        VARCHAR2(30),     -- Current mode
               remote_link     VARCHAR2(4000),   -- DB link, if any
               owner           VARCHAR2(30),     -- Job owner
               platform        VARCHAR2(101),    -- Current job platform
               exp_platform    VARCHAR2(101),    -- Export platform
               global_name     VARCHAR2(4000),   -- Global name of DB
               exp_global_name VARCHAR2(4000),   -- Export global name
               instance        VARCHAR2(16),     -- The instance name
               db_version      VARCHAR2(30),     -- Version of objects
               exp_db_version  VARCHAR2(30),     -- Export version
               scn             NUMBER,           -- Job SCN   
               creator_privs   VARCHAR2(30),     -- Privs of job
               start_time      DATE,             -- This job start time
               exp_start_time  DATE,             -- Export start time
               term_reason     NUMBER,           -- Job termination code
               max_degree      NUMBER,           -- Max. parallelism
               log_file        VARCHAR2(4000),   -- Log file name
               sql_file        VARCHAR2(4000),   -- SQL file name
               params          ku$_ParamValues1010  -- Parameter list)
 
CREATE OR REPLACE PUBLIC SYNONYM ku$_JobDesc1020 FOR sys.ku$_JobDesc1020;
CREATE OR REPLACE PUBLIC SYNONYM ku$_JobDesc FOR ku$_JobDesc1020;

ステータス・タイプ

ステータス・タイプは、定義済の以前のタイプをいくつか集めたもので、GET_STATUSコールに対する戻り値です。マスク属性は、コール元に戻される情報のタイプを示します。クライアントのシャドウ・プロセスによって、ステータス・キューから取得される情報、あるいはマスター表から直接作成されます。

エラーの場合は、ku$_LogEntryが戻され、ログ行が適切な出力順に並べられています。つまり、元のku$_LogEntryオブジェクトが、最も外側のコンテキストから最も内側のコンテキストの順に並べられています。

ステータス・タイプは次のように定義します。

CREATE TYPE sys.ku$_Status1010 AS OBJECT
(
mask NUMBER,         /* Indicates which status types are present*/
wip ku$_LogEntry1010,  /* Work-In-Progress: std. exp/imp msgs */
job_description    ku$_JobDesc1010,   /* Complete job description */
job_status         ku$_JobStatus1010, /* Detailed job status + per-worker sts */
error              ku$_LogEntry1010   /* Multi-level contextual errors */
)
CREATE OR REPLACE PUBLIC SYNONYM ku$_Status1010 FOR sys.ku$_Status1010;
 
CREATE TYPE sys.ku$_Status1020 IS OBJECT
        (
               mask             NUMBER,            -- Status types present
               wip              ku$_LogEntry1010,  -- Work in progress
               job_description  ku$_JobDesc1020,   -- Complete job description
               job_status       ku$_JobStatus1020, -- Detailed job status
               error            ku$_LogEntry1010   -- Multi-level context errors
        )
 
CREATE OR REPLACE PUBLIC SYNONYM ku$_Status1020 FOR sys.ku$_Status1020;
 
CREATE OR REPLACE PUBLIC SYNONYM ku$_Status FOR ku$_Status1020;

DBMS_DATAPUMPサブプログラムの要約

表46-1 DBMS_DATAPUMPパッケージのサブプログラム

サブプログラム 説明

ADD_FILEプロシージャ


エクスポート、インポートまたはSQL_FILEの各操作に使用するダンプ・ファイル・セットにダンプ・ファイルを追加します。このプロシージャに提供されているFILETYPEパラメータを使用して、ダンプ・ファイル以外のタイプのファイルも追加できます。

ATTACHファンクション


定義中、実行中、アイドルまたは停止などの状態にあるデータ・ポンプ・ジョブにアクセスするために使用します。

DATA_FILTERプロシージャ


取得する行に制限を指定します。

DETACHプロシージャ


ユーザーがこれ以上ハンドルを使用しないことを指定します。

GET_DUMPFILE_INFOプロシージャ


指定したダンプ・ファイルの情報を取り出します。

GET_STATUSプロシージャ


ジョブのステータスを監視するか、ジョブの完了あるいはAPIエラーの詳細を待機します。

LOG_ENTRYプロシージャ


ログ・ファイルにメッセージを挿入します。

METADATA_FILTERプロシージャ


ジョブに含まれる項目を制限するためのフィルタを提供します。

METADATA_REMAPプロシージャ


指定したジョブ内でオブジェクトが処理されるときに、オブジェクトに適用される再マッピングを指定します。

METADATA_TRANSFORMプロシージャ


指定されたジョブ内でオブジェクトが処理されるときに、オブジェクトに適用される変換を指定します。

OPENファンクション


データ・ポンプAPIを使用する新規ジョブを宣言します。戻されるハンドルは、その他すべてのプロシージャをコールするパラメータとして使用されます(ATTACHファンクションを除く)。

SET_PARALLELプロシージャ


ジョブ内の並列度を調整します。

SET_PARAMETERプロシージャ


ジョブ処理オプションを指定します。

START_JOBプロシージャ


ジョブの実行を開始または再開します。

STOP_JOBプロシージャ


ジョブを終了しますが、オプションでジョブの状態を保存します。

WAIT_FOR_JOBプロシージャ


正常に完了するか、またはなんらかの理由で停止するまでジョブを実行します。



ADD_FILEプロシージャ

このプロシージャは、エクスポート、インポートまたはSQL_FILEの各操作に使用されるダンプ・ファイル・セットにファイルを追加します。あるいは、SQL_FILE操作に使用されるログ・ファイルまたは出力ファイルを指定します。

構文

DBMS_DATAPUMP.ADD_FILE (
   handle     IN NUMBER,
   filename   IN VARCHAR2,
   directory  IN VARCHAR2,
   filesize   IN VARCHAR2 DEFAULT NULL,
   filetype   IN NUMBER DEFAULT DBMS_DATAPUMP.KU$_FILE_TYPE_DUMP_FILE),
   reusefile  IN NUMBER DEFAULT NULL;

パラメータ

表46-2 ADD_FILEプロシージャのパラメータ

パラメータ 説明

handle

ジョブのハンドル。現行のセッションは、OPENファンクションまたはATTACHファンクションへのコールを使用して、あらかじめこのハンドルに連結しておく必要があります。

filename

追加されるファイルの名前。filenameは、ディレクトリ・パス情報を持たない単純なファイル名にする必要があります。ダンプ・ファイルの場合、filenameは置換変数(%U)を含めることはでき、これは、指定されたfilenameをテンプレートとして複数のファイルが生成できることを示します。%Uは結果として得られるファイル名の中で展開され、01で始まり、2文字の固定幅で増加する整数になります。たとえばexport%Uというダンプ・ファイル名の場合は、エクスポートの実行に必要なファイル数に応じて、export01export02export03という具合にファイルが作成されます。%文字を含むファイル名の場合は、曖昧さを避けるために%%%として表現する必要があります。ファイル名に含まれるすべての%に対して、その後に%またはUのいずれかを付ける必要があります。

directory

filenameを探すために使用するデータベース内のディレクトリ・オブジェクトの名前。directoryは必ず指定する必要があります。DIRECTORYコマンドライン・パラメータの詳細は、『Oracle Databaseユーティリティ』のデータ・ポンプ・エクスポートの章を参照してください。

filesize

追加されるダンプ・ファイルのサイズ。バイト数、キロバイト数(Kを後に付ける場合)、メガバイト数(Mを後に付ける場合)、ギガバイト数(Gを後に付ける場合)で指定できます。エクスポート操作では、指定したバイト数のみがファイルに書き込まれます。一杯になった時点でファイルは閉じます。指定したバイト数を書き込む領域がデバイスに不足している場合、エクスポート操作は失敗しますが、また再開できます。サイズを指定しない場合、filesizeはデフォルトで無限サイズに設定されます。インポート操作およびSQL_FILE操作では、filesizeは無視されます。filesizeの最小値は、デフォルトのデータ・ポンプのブロック・サイズ(4KB)の10倍です。filesizeはダンプ・ファイルに対してのみ指定できます。

filetype

追加されるファイルのタイプ。有効な値は次のとおりで、DBMS_DATAPUMP.を前に付ける必要があります。

  • KU$_FILE_TYPE_DUMP_FILE(ジョブのダンプ・ファイル)

  • KU$_FILE_TYPE_LOG_FILE(ジョブのログ・ファイル)

  • KU$_FILE_TYPE_SQL_FILE(SQL_FILEジョブの出力)

reusefile

0(ゼロ)を指定すると、すでにファイルが存在する場合にエラーになります。1を指定すると、既存のファイルは上書きされます。NULLを指定すると、そのファイル・タイプに対するデフォルトのアクションが適用されます(つまり、ダンプ・ファイルは上書きされません)。このパラメータでは、ダンプ・ファイルに対してNULL以外の値を指定する必要があります。reusefileパラメータは、エクスポート・ジョブに限定されています。


例外

  • INVALID_HANDLE。指定されたハンドルは、データ・ポンプ・ジョブに連結していません。

  • INVALID_ARGVAL。無効な値が入力パラメータに指定されました。

  • INVALID_STATE。ジョブが再定義中であるか、ジョブがインポート・ジョブまたはSQL_FILEジョブの定義中の状態を過ぎている、あるいはジョブがLOGファイルおよびSQLファイルの定義中の状態を過ぎています。

  • INVALID_OPERATION。ダンプ・ファイルがネットワーク・インポート操作またはESTIMATE_ONLYエクスポート操作に指定されています。

  • SUCCESS_WITH_INFO。このプロシージャは成功しましたが、GET_STATUSプロシージャを使用するとさらに詳しい情報が得られます。

  • NO_SUCH_JOB。指定されたジョブは存在しません。

使用上の注意

  • データ・ポンプ・ジョブにファイルを追加します。ジョブには3種類のファイルを追加でき、ダンプ・ファイルには移動中のデータが格納され、ログ・ファイルには操作に関連するメッセージが記録され、SQLファイルにはSQL_FILE操作の出力が記録されます。ログ・ファイルおよびSQLファイルは、既存のファイルを上書きします。ダンプ・ファイルが、既存のファイルを上書きすることはありません。そのかわりに、エラーが発生します。

  • インポート操作およびSQL_FILE操作では、ジョブの定義フェーズの間にすべてのダンプ・ファイルを指定する必要があります。エクスポート操作では、いつでもダンプ・ファイルを追加できます。たとえば、エクスポート中にファイル領域が少なくなっていることが判明した場合は、このAPIを使用してさらにダンプ・ファイルを追加できます。指定したダンプ・ファイルがすでにエクスポート操作用に存在し、reusefileが1に設定されていない場合は、エラーが戻されます。

  • エクスポート操作では、並列度設定を、ダンプ・ファイル・セット内のダンプ・ファイルの数以下にする必要があります。十分な数のダンプ・ファイルが存在しない場合、ジョブはSET_PARALLELプロシージャを使用して指定された値まで並列度を最大化することができません。

  • インポート操作でも、並列度設定は、ダンプ・ファイル・セット内のダンプ・ファイルの数以下にする必要があります。十分な数のダンプ・ファイルが存在しない場合、複数の実行スレッドが1つのダンプ・ファイルにアクセスを試みるため、パフォーマンスが最適になりません。

  • ファイル名に置換変数(%U)が含まれる場合は、ADD_FILEへの1つのコールで複数のダンプ・ファイルを指定できます。エクスポート操作では、必要に応じて新規ダンプ・ファイルが作成されます。SET_PARALLELの現行値で指定されたすべてのプロセスをアクティブにするのに十分な数のダンプ・ファイルが作成されます。1つのダンプ・ファイルが一杯になると、そのダンプ・ファイルは閉じられ、そのかわりとなる新しいダンプ・ファイルが(新しく生成された名前で)作成されます。置換変数を含む複数のADD_FILEがジョブ内の複数のダンプ・ファイルに指定されている場合は、ラウンド・ロビン法でダンプ・ファイルを生成するために使用されます。たとえば、並列度が6のジョブに対してexpa%Uexpb%Uおよびexpc%Uを指定した場合、作成される初期ダンプ・ファイルはexpa01expb01expc01expa02expb02expc02のようになります。

  • ダンプ・ファイル指定(expa%Uexpb%Uおよびexpc%U)が指定されている場合、インポート操作またはSQL_FILE操作は、ダンプ・ファイル(expa01expb01およびexpc01)を開こうとすると開始されます。マスター表を含むダンプ・ファイルがこのセット内に見つからない場合は、置換変数を増加させてダンプ・ファイルの検索対象が拡大され、新規ファイル名(expa02expb02expc02など)が検索されます。データ・ポンプAPIでは、マスター表を含むダンプ・ファイルが見つかるまで検索対象を拡大し続けます。データ・ポンプAPIは、何度繰り返してもダンプ・ファイルが存在しないか、または現行のダンプ・セットの一部ではないと判断した場合、データ・ポンプAPIは、エラーとなったダンプ・ファイル指定について置換変数の増加を停止します。マスター表が見つかった場合は、このマスター表を使用して、ダンプ・ファイル・セット内のすべてのダンプ・ファイルがいつ検出されたかを確認します。


ATTACHファンクション

このファンクションは、以前に作成されたジョブにアクセスします。

構文

DBMS_DATAPUMP.ATTACH(
   job_name    IN VARCHAR2 DEFAULT NULL,
   job_owner    IN VARCHAR2 DEFAULT NULL) 
 RETURN NUMBER;

パラメータ

表46-3 ATTACHファンクションのパラメータ

パラメータ 説明

job_name

ジョブの名前。デフォルトは、job_ownerパラメータの中で指定されたユーザーが所有するジョブ名です(このユーザーは定義中、実行中またはアイドルの状態にあるジョブを1つのみ所有すると仮定します)。

job_owner

最初にジョブを開始したユーザー。NULLの場合、値はデフォルトで現行セッションの所有者に設定されます。ジョブ所有者を自分以外に指定するには、DATAPUMP_EXP_FULL_DATABASEロール(エクスポート操作の場合)またはDATAPUMP_IMP_FULL_DATABASEロール(インポート操作およびSQL_FILE操作の場合)のいずれかが必要です。権限のあるユーザーであれば他のユーザーのジョブを監視できますが、他のユーザーのジョブを再開することはできません。


戻り値

ジョブに対する曖昧なハンドル。このハンドルを入力として使用できるプロシージャは、ADD_FILEDATA_FILTERDETACHGET_STATUSLOG_ENTRYMETADATA_FILTERMETADATA_REMAPMETADATA_TRANSFORMSET_PARALLELSET_PARAMETER,START_JOBSTOP_JOBおよびWAIT_FOR_JOBです。

例外

  • INVALID_ARGVAL。無効な値が入力パラメータに指定されました。

  • OBJECT_NOT_FOUND。指定したジョブが存在しないか、または他のスキーマが所有するジョブを指定したが、指定を行ったユーザーにDATAPUMP_EXP_FULL_DATABASEまたはDATAPUMP_IMP_FULL_DATABASEロールがありません。

  • SUCCESS_WITH_INFO。このファンクションは成功しましたが、GET_STATUSプロシージャを使用するとさらに詳しい情報が得られます。

  • NO_SUCH_JOB。指定されたジョブは存在しません。

使用上の注意

  • ジョブが停止状態の場合、そのジョブはアイドル状態に置かれます。ATTACHがいったん成功すると、ジョブの進捗の監視や、ジョブの制御ができます。GET_STATUSプロシージャによって戻されたKU$_STATUS_WIPメッセージおよびKU$_STATUS_JOB_ERRORメッセージのストリームは、クライアントが連結した時間の前後に開始される新しい連結ジョブに戻されます。クライアントがジョブに連結する前に処理されたステータス・メッセージおよびエラー・メッセージは繰り返されません。

  • ジョブへの2回目の連結は、別のセッションから行う必要があります。

  • ATTACHが失敗した場合は、その後のGET_STATUSへのコールでNULLハンドルを使用して、失敗に関する詳細情報を入手します。


DATA_FILTERプロシージャ

このプロシージャは、取得する行に制限を指定します。

構文

DBMS_DATAPUMP.DATA_FILTER (
   handle      IN NUMBER,
   name        IN VARCHAR2,
   value       IN NUMBER,
   table_name  IN VARCHAR2 DEFAULT NULL,
   schema_name IN VARCHAR2 DEFAULT NULL);

DBMS_DATAPUMP.DATA_FILTER(
   handle      IN NUMBER,
   name        IN VARCHAR2,
   value       IN VARCHAR2,
   table_name  IN VARCHAR2 DEFAULT NULL,
   schema_name IN VARCHAR2 DEFAULT NULL);

DBMS_DATAPUMP.DATA_FILTER(
   handle      IN NUMBER,
   name        IN VARCHAR2,
   value       IN CLOB,
   table_name  IN VARCHAR2 DEFAULT NULL,
   schema_name IN VARCHAR2 DEFAULT NULL);

パラメータ

表46-4 DATA_FILTERプロシージャのパラメータ

パラメータ 説明

handle

OPENファンクションから戻されるハンドル。

name

フィルタ名。

value

フィルタ値。

table_name

データ・フィルタが適用される表の名前。表の名前を指定しない場合、フィルタはジョブ内のすべての表に適用されます。

schema_name

フィルタが適用される表を所有するスキーマの名前。スキーマの名前を指定しない場合、フィルタはジョブ内のすべてのスキーマに適用されます。スキーマ名を指定する場合は、表の名前も指定する必要があります。


例外

  • INVALID_ARGVAL。このメッセージに関しては、次のような複数の理由があります。

    • 不適切なフィルタ名が指定されました。

    • TRANSPORTABLEモードのため、データ・フィルタがサポートされません。

    • 指定した表が存在しません。

    • このフィルタは、指定値schema_nameおよびtable_nameに対してすでに設定されています。

  • INVALID_STATE。ジョブが定義中の状態ではないときに、ユーザーがDATA_FILTERをコールしました。

  • INCONSISTENT_ARGSvalueパラメータが存在しないか、そのデータ・タイプがフィルタ名と一致しません。あるいはスキーマ名が指定されましたが、表の名前が指定されていません。

  • PRIVILEGE_ERROR。スキーマ名が指定されましたが、ユーザーにはDATAPUMP_EXP_FULL_DATABASEロールまたはDATAPUMP_IMP_FULL_DATABASEロールがありませんでした。

  • SUCCESS_WITH_INFO。このプロシージャは成功しましたが、GET_STATUSプロシージャを使用するとさらに詳しい情報が得られます。

  • NO_SUCH_JOB。指定されたジョブは存在しません。

使用上の注意

  • それぞれのデータ・フィルタは、各表につき1回ずつ(たとえば、1つの表に複数のSUBQUERYフィルタは指定できません)あるいは各ジョブにつき1回ずつのみ表示できます。同じ名前を使用する異なるフィルタが、特定の表とジョブ全体の両方に適用された場合、特定の表に指定されたフィルタ・パラメータが優先されます。

    INCLUDE_ROWSフィルタの例外を除き、データ・フィルタは、ネストした表が含まれる表やドメイン索引が定義された表ではサポートされません。データ・フィルタは、トランスポータブル表領域モードで実行されるジョブではサポートされません。

    表46-5に、選択可能なデータ・フィルタを示します。

表46-5 データ・フィルタ

名前 データ・タイプ フィルタをサポートする操作 説明

INCLUDE_ROWS

NUMBER

エクスポート、インポート

0(ゼロ)以外に設定すると、このフィルタは、指定された表のユーザー・データがジョブに含まれるように指定します。デフォルトは1です。

PARTITION_EXPR

PARTITION_LIST

TEXT

エクスポート、インポート

エクスポート・ジョブでは、これらのフィルタによって、データベースからアンロードされるパーティションを指定します。インポート・ジョブでは、データベースにロードされる表パーティションを指定します。パーティション名が設定式に準拠する(PARTITION_EXPRの場合)か、またはリストに含まれる(PARTITION_LISTの場合)場合は、その名前がジョブの中に含まれます。式バージョンのフィルタのは柔軟に設定できますが、リスト・バージョンはパーティション名を完全に検証する必要があります。

パーティション名を囲む二重引用符は、パーティション名に特殊文字が含まれる場合のみ必要です。

PARTITION_EXPRは、ネットワーク・リンクを越えるジョブではサポートされません。

デフォルトでは、すべてのパーティションが処理されます。

SAMPLE

NUMBER

エクスポート、インポート

エクスポート・ジョブの場合は、移動するデータ・ブロックをサンプリングする割合を指定します。このフィルタを使用すると、大きい表のサブセットをテスト用に抽出できます。

SUBQUERY

TEXT

エクスポート、インポート

表のSELECT文の最後に追加される副問合せを指定します。副問合せ内にWHERE句を指定した場合、選択される行を制限できます。ORDER BY句を指定すると、エクスポートで行をダンプするように命令されますが、これによって、ヒープ構成表から索引構成表に移行するときのパフォーマンスが向上します。



DATA_REMAPプロシージャ

このプロシージャは、データベースからエクスポートされるとき、またはデータベースにインポートされるときにその列データに適用される変換を指定します。

構文

DBMS_DATAPUMP.DATA_REMAP(
   handle          IN NUMBER,
   name            IN VARCHAR2,
   table_name      IN VARCHAR2,
   column          IN VARCHAR2,
   remap_function  IN VARCHAR2),
   schema          IN VARCHAR2 DEFAULT NULL);

パラメータ

表46-6 DATA_REMAPプロシージャのパラメータ

パラメータ 説明

handle

現行ジョブのハンドル。現行のセッションは、OPENファンクションへのコールを使用して、あらかじめこのハンドルに連結しておく必要があります。

name

再マップの名前。

table_name

再マップ対象の列が含まれる表。

column

再マップ対象の列の名前。

remap_function

名前の値によって意味が異なります。使用可能な名前については、表46-7を参照してください。

schema

再マップ対象の列が含まれるスキーマ。NULLの場合、指定した表が含まれるジョブに移動したすべてのスキーマに再マップが適用されます。


例外

  • INVALID_ARGVAL。トランスポータブル・モード(データの変更がサポートされません)か、またはジョブにデータが含まれないように指定されています。無効な再マップ名が指定されました。

  • INVALID_OPERATION。データの再マップは、エクスポート操作およびインポート操作でのみサポートされています。

  • INVALID_STATE。ジョブの開始後に、DATA_REMAPプロシージャがコールされました(つまり、ジョブは定義中の状態ではありませんでした)。

  • NO_SUCH_JOB。ジョブ・ハンドルが有効ではありません。

使用上の注意

  • DATA_REMAPプロシージャは、エクスポート操作およびインポート操作のみでサポートされています。これを使用すると、エクスポートまたはインポートするユーザー・データを操作できます。再マップのnameによって、実行される再マップ操作が決定されます。

  • エクスポート操作で、ダンプ・ファイルからクレジット・カード番号などの機密データが簡単に特定されないようにデータの再マップを定義し、残りのデータは読み取ることができるようにそのままの状態にしておく場合があります。これを実現するには、再マップによって、一意の各ソース番号を個別に生成された番号に変換する必要があります。ダンプ・ファイル・セットで一貫したマッピングとなるように、クレジット・カード番号が含まれるすべての列に対し、同じファンクションをコールする必要があります。

  • インポート操作で、競合する主キーを含む既存の表にデータがマージされるときに、主キーを設定しなおすためにデータの再マップを定義する場合があります。再マップの一貫性を保つために、主キーを定義または参照するすべての列に対して、単一の再マップ・ファンクションを指定する必要があります。


注意:

コールしたファンクションでパッケージ状態の変数が使用される場合、すべての表で一貫した再マップが実行されるように、SET_PARALLELの値が1の状態でジョブを実行し、再起動操作を実行しないようにする必要があります。

表46-7に、データの再マップ・ファンクションを示します。

表46-7 データの再マップ・ファンクションの名前

名前 remap_functionの意味 意味

COLUMN_FUNCTION

文字列の形式:

[schema.]package.function

nameパラメータは、指定した列のデータを変更するためにコールするPL/SQLパッケージのファンクションを参照します。このファンクションは、再マップされた列と同じデータ・タイプを持つ単一のパラメータを使用して、再マップされた列と同じデータ・タイプを持つ値を戻します。スキーマのデフォルトは、エクスポートを実行するユーザーのスキーマであることに注意してください。



DETACHプロシージャ

このプロシージャは、ユーザーがこれ以上ハンドルを使用しないことを指定します。

構文

DBMS_DATAPUMP.DETACH(
   handle  IN NUMBER);

パラメータ

表46-8 DETACHプロシージャのパラメータ

パラメータ 説明

handle

ジョブのハンドル。現行のセッションは、OPENファンクションまたはATTACHファンクションへのコールを使用して、あらかじめこのハンドルに連結しておく必要があります。


例外

  • INVALID_HANDLE。指定されたハンドルは、データ・ポンプ・ジョブに連結していません。

  • SUCCESS_WITH_INFO。このプロシージャは成功しましたが、GET_STATUSプロシージャを使用するとさらに詳しい情報が得られます。

  • NO_SUCH_JOB。指定されたジョブは存在しません。

使用上の注意

  • このコールを使用して、ハンドルをこれ以上使用しないことを指定します。完了したジョブに関連付けられたリソースは、すべてのユーザーがそのジョブから連結を解除するまで再要求できません。ユーザーのセッションが終了あるいは中断すると、ハンドルからの暗黙的な連結解除が実行されます。ハンドルからの暗黙的な連結解除は、ハンドルによって参照されたジョブに適用されたSTOP_JOBに関連するタイムアウトの終了時にも実行されます。インスタンスが再開すると、以前に割り当てられたすべてのDBMS_DATAPUMPハンドルが解放されます。


GET_DUMPFILE_INFOプロシージャ

このプロシージャは、指定したダンプ・ファイルの情報を取り出します。

構文

DBMS_DATAPUMP.GET_DUMPFILE_INFO(
   filename    IN VARCHAR2,
   directory   IN VARCHAR2,
   info_table  OUT ku$_dumpfile_info,
   filetype    OUT NUMBER);

パラメータ

表46-9 GET_DUMPFILE_INFOプロシージャのパラメータ

パラメータ 説明

filename

ディレクトリ・パス情報を持たない単純なファイル名。

directory

ファイルの場所を指定するディレクトリ・オブジェクト。

info_table

ダンプ・ファイルの情報を格納するためのPL/SQL表。

filetype

ファイルのタイプ(データ・ポンプ・ダンプ・ファイル、元のエクスポート・ダンプ・ファイル、外部表のダンプ・ファイルまたは不明)。


例外

GET_DUMPFILE_INFOプロシージャは、データ・ポンプ・ジョブのコンテキストの外部で動作するユーティリティ・ルーチンです。このプロシージャでは、データ・ポンプ・ジョブに関連付けられているプロシージャとは異なる方法で例外が処理されます。完全な例外スタックを直接使用できますが、この場合、GET_STATUSプロシージャをコールして詳細情報を取り出す必要はありません。このプロシージャの例外は、次のとおりです。

  • NO_DUMPFILE_INFO。指定したダンプ・ファイル情報を取り出せません。

使用上の注意

GET_DUMPFILE_INFOプロシージャを使用すると、特定のファイルの情報を要求できます。ファイルがいずれのタイプのダンプ・ファイルとしても認識されない場合は、filetypeに0(ゼロ)が戻され、ダンプ・ファイルのinfo_tableは空になります。

filetype値が1の場合は、データ・ポンプ・ダンプ・ファイルを示します。filetype値が2の場合は、元のエクスポート・ダンプ・ファイルを示します。filetype値が3の場合は、外部表のダンプ・ファイルを示します。いずれの場合も、ダンプ・ファイルのinfo_tableには、ダンプ・ファイル・ヘッダーから取り出された情報が格納されます。この表の行は、項目コードと値のペアで構成されていて、項目コードは情報のタイプを示し、値列は、実際のデータ(場合によっては文字列に変換される)を含むVARCHAR2になります。表を定義する方法は、次のとおりです。

CREATE TYPE sys.ku$_dumpfile_item IS OBJECT (
                item_code       NUMBER,           -- Identifies header item
                value           VARCHAR2(2048)    -- Text string value)/
 
GRANT EXECUTE ON sys.ku$_dumpfile_item TO PUBLIC; 
CREATE OR REPLACE PUBLIC SYNONYM ku$_dumpfile_item FOR sys.ku$_dumpfile_item;
 
CREATE TYPE sys.ku$_dumpfile_info AS TABLE OF sys.ku$_dumpfile_item/
 
GRANT EXECUTE ON sys.ku$_dumpfile_info TO PUBLIC; 
CREATE OR REPLACE PUBLIC SYNONYM ku$_dumpfile_info FOR sys.ku$_dumpfile_info;
 

項目コードは、必要に応じて詳細情報を提供できるように簡単に拡張できます。表46-10に、現在定義されている項目コードを示します(パッケージ名のDBMS_DATAPUMPが前に付加されています)。これらの項目コードについて、次のことを念頭に置いてください。

  • 特に明記しないかぎり、すべての項目コードはOracle Data Pumpと外部表のダンプ・ファイル(filetype1と3)でのみ戻されます。

  • 特に明記しないかぎり、すべての項目コードはOracle Database 10gリリース2(10.2)以降で使用可能です。

表46-10 DBMS_DATAPUMP.GET_DUMPFILE_INFOプロシージャの項目コード

項目コード 説明

KU$_DFHDR_FILE_VERSION

ダンプ・ファイルの内部ファイル・バージョン。

KU$_DFHDR_MASTER_PRESENT

ダンプ・ファイルにデータ・ポンプのマスター表が存在する場合、この項目コードの値は1になります。存在しない場合は、値は0になります。filetype1でのみ戻されます。

KU$_DFHDR_GUID

ダンプ・ファイルを生成したデータ・ポンプ・エクスポート・ジョブまたは外部表のアンロード・ジョブに割り当てられた一意の識別子。複数ファイル・ダンプ・セットの場合、セット内の各ファイルで、この項目コードは同じ値になります。

KU$_DFHDR_FILE_NUMBER

ダンプ・ファイルに割り当てられている数値識別子。複数ファイル・ダンプ・セットの各ダンプ・ファイルには、そのダンプ・セット内でのみ一意である固有の識別子が割り当てられます。

KU$_DFHDR_CHARSET_ID

ダンプ・ファイルの作成時に、ソース・システムで使用していたキャラクタ・セットを表す数値コード。

すべてのfiletypeで戻されます。

KU$_DFHDR_CREATION_DATE

ダンプ・ファイルの作成日時。

KU$_DFHDR_FLAGS

内部フラグ値。

KU$_DFHDR_JOB_NAME

ダンプ・ファイルを作成したエクスポート・ジョブに割り当てられた名前。

filetype1でのみ戻されます。

KU$_DFHDR_PLATFORM

ダンプ・ファイルが作成されたソース・システムのオペレーティング・システム名。

KU$_DFHDR_INSTANCE

ダンプ・ファイルが作成されたソース・システムのインスタンス名。

KU$_DFHDR_LANGUAGE

エクスポート・ダンプ・ファイルが作成されたソース・システムのキャラクタ・セットに対応する言語名。

KU$_DFHDR_BLOCKSIZE

ダンプ・ファイルのバイト単位のブロック・サイズ。

KU$_DFHDR_DIRPATH

ダンプ・ファイルの作成時にダイレクト・パス・モードを使用した場合、この項目コードの値は1になります。使用していない場合は、値は0になります。

filetype2でのみ戻されます。

KU$_DFHDR_METADATA_COMPRESSED

システム・メタデータが圧縮形式でダンプ・ファイルに格納されている場合、この項目コードの値は1になります。圧縮形式で格納されていない場合は、値は0になります。

filetype1でのみ戻されます。

KU$_DFHDR_DB_VERSION

ダンプ・ファイルの作成に使用するデータベース・ジョブ・バージョン。

すべてのfiletypeで戻されます。

KU$_DFHDR_MASTER_PIECE_COUNT

データ・ポンプのマスター表は複数の行断片に分割して、1ファイル当たり1行断片ずつ、セット内の複数のダンプ・ファイルに書き込めます。この項目コードで戻される値は、マスター表の行断片が保存されているダンプ・ファイルの数を示します。この項目コードの値は、項目コードKU$_DFHDR_MASTER_PRESENTで示されているとおり、ダンプ・ファイルにデータ・ポンプのマスター表が存在する場合にのみ意味を持ちます。

filetype1でのみ戻されます。

Oracle Database 11gリリース1(11.1)以降でのみ使用可能です。

KU$_DFHDR_MASTER_PIECE_NUMBER

データ・ポンプのマスター表は複数の行断片に分割して、1ファイル当たり1行断片ずつ、セット内の複数のダンプ・ファイルに書き込めます。この項目コードで戻される値は、ダンプ・ファイル内にマスター表のどの行断片が含まれているかを示します。この項目コードの値は、項目コードKU$_DFHDR_MASTER_PRESENTで示されているとおり、ダンプ・ファイルにデータ・ポンプのマスター表が存在する場合にのみ意味を持ちます。

filetype1でのみ戻されます。

Oracle Database 11gリリース1(11.1)以降でのみ使用可能です。

KU$_DFHDR_DATA_COMPRESSED

表データが圧縮形式でダンプ・ファイルに格納されている場合、この項目コードの値は1になります。圧縮形式で格納されていない場合は、値は0になります。

Oracle Database 11gリリース1(11.1)以降でのみ使用可能です。

KU$_DFHDR_METADATA_ENCRYPTED

システム・メタデータが暗号化形式でダンプ・ファイルに格納されている場合、この項目コードの値は1になります。暗号化形式で格納されていない場合は、値は0になります。

filetype1でのみ戻されます。

Oracle Database 11gリリース1(11.1)以降でのみ使用可能です。

KU$_DFHDR_DATA_ENCRYPTED

表データが暗号化形式でダンプ・ファイルに格納されている場合、この項目コードの値は1になります。暗号化形式で格納されていない場合は、値は0になります。

Oracle Database 11gリリース1(11.1)以降でのみ使用可能です。

KU$_DFHDR_COLUMNS_ENCRYPTED

暗号化された列データが暗号化形式でダンプ・ファイルに格納されている場合、この項目コードの値は1になります。暗号化形式で格納されていない場合は、値は0になります。

filetype1でのみ戻されます。

Oracle Database 11gリリース1(11.1)以降でのみ使用可能です。

KU$_DFHDR_ENCRYPTION_MODE

この暗号化モードは、ダンプ・ファイルに書き込まれるデータを暗号化するためにユーザー指定のパスワードやOracle Encryption Walletが使用されたかどうかを示します。この項目コードの戻り値は、次のとおりです。

  • KU$_DFHDR_ENCMODE_NONE

    ダンプ・ファイルに暗号化形式で書き込まれたデータはありません。

  • KU$_DFHDR_ENCMODE_PASSWORD

    指定されたパスワードを使用して、データが暗号化形式でダンプ・ファイルに書き込まれました。

  • KU$_DFHDR_ENCMODE_DUAL

    指定されたパスワードとOracle Encryption Walletを両方とも使用して、データが暗号化形式でダンプ・ファイルに書き込まれました。

  • KU$_DFHDR_ENCMODE_TRANS

    Oracle Encryption Walletを使用して、データが透過的に暗号化形式でダンプ・ファイルに書き込まれました。

Oracle Database 11gリリース1(11.1)以降でのみ使用可能です。



GET_STATUSプロシージャ

このプロシージャは、ジョブのステータスを監視、あるいはジョブの完了を待機します。

構文

DBMS_DATAPUMP.GET_STATUS(
   handle    IN NUMBER,
   mask      IN BINARY_INTEGER,
   timeout   IN NUMBER DEFAULT NULL,
   job_state OUT VARCHAR2,
   status    OUT ku$_Status1010);

パラメータ

表46-11 GET_STATUSプロシージャのパラメータ

パラメータ 説明

handle

ジョブのハンドル。現行のセッションは、OPENファンクションまたはATTACHファンクションへのコールを使用して、あらかじめこのハンドルに連結しておく必要があります。NULLハンドルを使用すると、OPEN障害およびATTACH障害の後でエラー情報を取得できます。

mask

次の4種類の中でどの情報が戻るかを示すビット・マスク。

  • KU$_STATUS_WIP

  • KU$_STATUS_JOB_DESC

  • KU$_STATUS_JOB_STATUS

  • KU$_STATUS_JOB_ERROR

それぞれのステータスに数値が設定されています。値を違う組合せで一緒に追加することにより、複数の種類の情報を要求できます。「データ構造: オブジェクト・タイプ」を参照してください。

timeout

ユーザーに情報を戻すまでに待機する最大秒数。値0(ゼロ)は、即座に戻すことを要求します。値-1は、無限に待機することを要求します。KU$_STATUS_WIPあるいはKU$_STATUS_JOB_ERRORの情報が要求され、タイムアウト期間中に情報が発生した場合は、タイムアウト期間が終了する前に情報が戻されます。

job_state

ジョブの現在の状態。ジョブの状態のみが必要な場合は、ku$_Status構造全体を取得するより、このパラメータを使用するほうがはるかに効率的です。

status

ku$_Statusが戻されます。ku$_Statusマスクは、含まれている情報の種類を示します。KU$_STATUS_WIP情報またはKU$_STATUS_JOB_ERROR情報が要求されたが、タイムアウト期間が終了した場合は、何も戻されない可能性があります。オブジェクト・タイプは、ku$_Status1010またはku$_Status1020になる可能性があります。


例外

  • INVALID_HANDLE。指定されたハンドルは、データ・ポンプ・ジョブに連結していません。

  • INVALID_VALUE。マスクあるいはタイムアウトに無効な値が含まれています。

  • SUCCESS_WITH_INFO。このプロシージャは成功しましたが、GET_STATUSプロシージャを使用するとさらに詳しい情報が得られます。

  • NO_SUCH_JOB。指定されたジョブは存在しません。

使用上の注意

GET_STATUSプロシージャは、進行中のジョブの進捗を監視し、エラー通知を受信するために使用します。maskパラメータを使用して、様々な情報を要求できます。KU$_STATUS_JOB_DESCおよびKU$_STATUS_JOB_STATUSの値は同期情報として分類されますが、これは、これらの情報がマスター表に常駐するためです。KU$_STATUS_WIPおよびKU$_STATUS_JOB_ERRORの値は非同期情報として分類されますが、これはこれらのタイプの情報を表現するメッセージが、いつでもデータ・ポンプ・アーキテクチャ内の各種レイヤーによって生成できるからです。

  • 同期情報のみが要求された場合、インタフェースはtimeoutパラメータを無視し、単に要求された情報を戻します。

  • 非同期情報が要求された場合、インタフェースはタイムアウトの最大秒数を待機してからクライアントに戻します。要求された非同期情報タイプのメッセージが受信された場合、そのコールはタイムアウトの秒数が尽きる前に完了します。同期情報も要求されていた場合、その情報はプロシージャが戻るたびに戻されます。

  • GET_STATUSによって戻されたjob_stateが終了ジョブを示していない場合にも、ジョブは、GET_STATUSへの次のコールの前に終了する可能性があります。この場合、INVALID_HANDLE例外が発生します。また、GET_STATUSへのコール中にこのジョブが終了する可能性もあり、この場合はNO_SUCH_JOB例外が発生します。コール元は、これらの場合に対処する準備をしておく必要があります。

エラー処理

GET_STATUSプロシージャを使用して処理する必要があるエラー・シナリオには次の2種類があります。

  • 他のプロシージャ・コールの結果として起こるエラー: たとえばSET_PARAMETERプロシージャによってINCONSISTENT_ARGS例外が発生する可能性があります。クライアントはただちに、mask=8 (エラー)およびtimeout=0を設定してGET_STATUSをコールする必要があります。戻されるku$_Status.errorには、非一貫性をより詳細に説明するku$_LogEntryが含まれます。

  • クライアントに対して非同期なイベントの結果として発生するエラー: たとえば、表を作成しようとしたときに表示される「表はすでに存在しています」などがあります。ku$_Status.errorには、エラーに関するコンテキストを追加した処理中の全レイヤーから取得されたすべてのエラー行が、ku$_LogEntryに適切な順序で並べられて保存されます。

ジョブが開始すると、通常、クライアントの主要な処理ループは、KU$_STATUS_WIPメッセージおよびKU$_STATUS_JOB_ERRORメッセージについて無限タイムアウト(-1)のリスニングを設定したGET_STATUSへのコールで構成されます。ステータスが要求された場合は、その要求の中にJOB_STATUS情報も含まれます。

ku$_Statusを解釈するときは、次のガイドラインに従う必要があります。

  • ku$_Status.ku$_JobStatus.percent_doneは、ジョブ内で処理されたデータ量のみが対象となります。メタデータは計算で考慮されません。次の式を使用して決定されます。

    • エクスポートまたはネットワーク・インポート: (bytes_processed/estimated_bytes) * 100

    • インポート: (bytes_processed/total_expected_bytes) * 100

    • SQL_FILEあるいは見積りのみのエクスポート: 完了していない場合は0.00、完了している場合は100.00

    QUERYデータ・フィルタおよびPARTITION_EXPRデータ・フィルタの効果は、percent_doneの計算には考慮されません。

    戻されるステータスは、コール元によって、さらにわかりやすいステータスに変換させることができます。たとえば、完了した割合(percent_done)が0(ゼロ)以外の場合の見積り完了時間は、次の式で求められます。

    ((SYSDATE - start time) / ku$_Status.ku$_JobStatus.percent_done) * 100
    
  • コール元は、ku$_Status.ku$_JobStatus.percent_doneを使用して、ジョブが完了したかどうかを判断できません。コール元は、job_stateで検出されたジョブの状態のみを参照して、この判断を行うことができます。


LOG_ENTRYプロシージャ

このプロシージャは、ログ・ファイルにメッセージを挿入します。

構文

DBMS_DATAPUMP.LOG_ENTRY(
   handle         IN NUMBER,
   message        IN VARCHAR2
   log_file_only  IN NUMBER DEFAULT 0);

パラメータ

表46-12 LOG_ENTRYプロシージャのパラメータ

パラメータ 説明

handle

ジョブのハンドル。現行のセッションは、OPENファンクションまたはATTACHファンクションへのコールを使用して、あらかじめこのハンドルに連結しておく必要があります。

message

ログ・ファイルに追加されるテキスト行。

log_file_only

ログ・ファイルのみに書き込まれるように指定されたテキスト。このテキストは、GET_STATUSの進行中の作業(KU$_STATUS_WIP)メッセージには戻されません。


例外

  • INVALID_HANDLE。指定されたハンドルは、データ・ポンプ・ジョブに連結していません。

  • SUCCESS_WITH_INFO。このプロシージャは成功しましたが、GET_STATUSプロシージャを使用するとさらに詳しい情報が得られます。

  • NO_SUCH_JOB。指定されたジョブは存在しません。

使用上の注意

このメッセージはログ・ファイルに追加されます。log_file_onlyが0(ゼロ、デフォルト値)の場合は、GET_STATUSプロシージャにより、ジョブに連結しているすべてのユーザーに対しても、KU$_STATUS_WIPメッセージとしてブロードキャストされます。

LOG_ENTRYプロシージャを使用すると、アプリケーションでログ・ストリームを調整して、アプリケーションで提供される形式と一致させることができます。たとえば、コマンドライン・インタフェースでは、ユーザーが定義したINCLUDEパラメータおよびEXCLUDEパラメータがサポートされています。これらの値を、基礎となるMETADATA_FILTERプロシージャへのコールとして指定すると、ユーザーを混乱させることになります。そこでかわりに、コマンドライン・インタフェースでは、INCLUDEパラメータおよびEXCLUDEパラメータの設定を説明するテキストをログに入力します。

LOG_ENTRYからログ・ストリームに入力された行には、";;; "という接頭辞が付きます。


METADATA_FILTERプロシージャ

このプロシージャは、ジョブに含まれる項目を制限するためのフィルタを提供します。

構文

DBMS_DATAPUMP.METADATA_FILTER(
   handle       IN NUMBER,
   name         IN VARCHAR2,
   value        IN VARCHAR2,
   object_path  IN VARCHAR2 DEFAULT NULL);

DBMS_DATAPUMP.METADATA_FILTER(
   handle       IN NUMBER,
   name         IN VARCHAR2,
   value        IN CLOB,
   object_path  IN VARCHAR2 DEFAULT NULL);

パラメータ

表46-13 METADATA_FILTERプロシージャのパラメータ

パラメータ 説明

handle

OPENファンクションから戻されたハンドル。

name

フィルタ名。使用可能なフィルタの説明は、表46-14を参照してください。

value

フィルタ値。

object_path

フィルタが適用されるオブジェクト・パス。デフォルトを使用した場合、フィルタは適用可能なすべてのオブジェクトに適用されます。各モードでサポートされるオブジェクト・パスのリストは、DATABASE_EXPORT_OBJECTSSCHEMA_EXPORT_OBJECTSおよびTABLE_EXPORT_OBJECTSのカタログ・ビューに示されています。(表モードと表領域モードのオブジェクト・パスは同じため、TABLE_EXPORT_OBJECTSビューはどちらのモードにも適用できる点に注意してください。)

インポート操作では、オブジェクト・パスはインポートに使用されるモードではなく、ダンプ・ファイルの作成に使用されるモードを参照します。


表46-14では、METADATA_FILTERプロシージャで使用可能なフィルタの名前、オブジェクト・タイプ、および意味について説明します。すべてのフィルタのデータ・タイプはテキスト式です。すべての操作ですべてのフィルタがサポートされています。

表46-14 METADATA_FILTERプロシージャによって提供されるフィルタ

名前 オブジェクト・タイプ 意味

NAME_EXPR

NAME_LIST

名前付きオブジェクト

ジョブに含めるオブジェクト名を定義します。オブジェクト・タイプのパラメータを使用して、フィルタの適用を特定のオブジェクト・タイプに制限します。

表モードでは、処理対象の表を指定します。

SCHEMA_EXPR

SCHEMA_LIST

スキーマ・オブジェクト

ジョブの対象は、式に準拠した書式のスキーマ名を持つオブジェクトに制限されます。

表モードでは、1つのSCHEMA_EXPRフィルタのみサポートされます。このパラメータを指定する場合は、スキーマを1つのみ指定する必要があります(例: 'IN (''SCOTT'')')。

スキーマ・モードでは、処理対象のユーザーを指定します。

TABLESPACE_EXPR

TABLESPACE_LIST

TABLE、CLUSTER、INDEX、ROLLBACK_SEGMENT

ジョブの対象は、式に準拠した書式の名前を持つ表領域に保存されたオブジェクトに制限されます。

表領域モードでは、処理対象の表領域を指定します。オブジェクトのパーティションが表領域に保存されている場合は、オブジェクト全体がジョブに追加されます。

トランスポータブル・モードでは、処理対象の表領域を指定します。表に表領域セット内のパーティションが1つある場合、この表領域セットにはすべてのパーティションが存在する必要があります。索引のすべてのパーティションが表領域セットに含まれる場合を除き、索引は表領域セットには含まれません。ドメイン索引のすべてのセカンダリ・オブジェクトが表領域セットに含まれる場合を除き、ドメイン索引は表領域セットには含まれません。

INCLUDE_PATH_EXPR

INCLUDE_PATH_LIST

EXCLUDE_PATH_EXPR

EXCLUDE_PATH_LIST

すべて

ジョブに含めるオブジェクト・パスあるいはジョブから除外するオブジェクト・パスを定義します。これらのフィルタを使用して、データベースまたはダンプ・ファイル・セットから特定のオブジェクト・タイプのみを選択します。条件を満たすパスを持つオブジェクトが、操作に含まれる(INCLUDE_PATH_*)か、または操作から除外(EXCLUDE_PATH_*)されます。これらのフィルタでは、object_pathパラメータはサポートされません。


例外

  • INVALID_HANDLE。指定されたハンドルは、データ・ポンプ・ジョブに連結していません。

  • INVALID_ARGVAL。この例外は、次のいずれかの状態を示します。

    • INCLUDE_PATH_EXPRフィルタまたはEXCLUDE_PATH_EXPRフィルタに対してobject_pathが指定されました。

    • 指定されたobject_pathは、現行のモードではサポートされません。

    • SCHEMA_EXPRフィルタにより、表モードのジョブに対して複数のスキーマが指定されました。

  • INVALID_STATE。ジョブが定義中の状態を過ぎた後で、METADATA_FILTERプロシージャをコールしました。

  • INCONSISTENT_ARGS。フィルタの値のデータ・タイプが間違っているか、値がありません。

  • SUCCESS_WITH_INFO。このプロシージャは成功しましたが、GET_STATUSプロシージャを使用するとさらに詳しい情報が得られます。

  • NO_SUCH_JOB。指定されたジョブは存在しません。

使用上の注意

  • メタデータ・フィルタは、データ・ポンプ操作に含めるか、データ・ポンプ操作から除外するオブジェクトの集合を特定します。EXCLUDE_PATH_EXPRフィルタおよびINCLUDE_PATH_EXPRフィルタ以外のフィルタで特定されたオブジェクトに依存するオブジェクトは、特定されたオブジェクトとともに処理されます。たとえば、フィルタにより索引が操作対象に含められる場合、このフィルタによってその索引に対する権限付与も操作対象となります。同様に、フィルタによって表が除外された場合、その表に関する索引、制約、権限付与およびトリガーもフィルタによって除外されます。

  • フィルタごとに2つのバージョン(SQL式およびリスト)がサポートされています。SQL式バージョンのフィルタでは、オブジェクトを柔軟に指定できます(たとえば、LIKEを使用するとワイルドカードを使用できます)。式フィルタの名前は、次のとおりです。

    • NAME_EXPR

    • SCHEMA_EXPR

    • TABLESPACE_EXPR

    • INCLUDE_PATH_EXPR

    • EXCLUDE_PATH_EXPR

    リスト・バージョンのフィルタでは、フィルタを最大限に検証できます。フィルタ内のいずれかの要素がソース・データベース内にない場合(エクスポートおよびネットワークベースのジョブの場合)、またはダンプ・ファイルにない場合(ファイルベースのインポートおよびSQLFILEジョブの場合)は、エラーがレポートされます。リスト・フィルタの名前は、次のとおりです。

    • NAME_LIST

    • SCHEMA_LIST

    • TABLESPACE_LIST

    • INCLUDE_PATH_LIST

    • EXCLUDE_PATH_LIST

  • フィルタを使用することにより、ジョブに含まれる項目を制限できます。たとえば、パッケージ仕様部またはパッケージ本体を除いた全体のエクスポートを要求できます。

  • 1つのオブジェクト・タイプに複数のフィルタが指定された場合は、暗黙的にこれらのフィルタについてAND処理が行われます(つまり、ジョブに参加するオブジェクトは、そのオブジェクト・タイプに適用されるすべてのフィルタを通過する必要があります)。

  • 1つのジョブ内には、同じフィルタ名を複数回指定できます。たとえば、表モードのエクスポートについてNAME_EXPR as '!=''EMP'''NAME_EXPR as '!=''DEPT'''を指定すると、EMPおよびDEPT以外のすべての表が含まれるファイル・セットが作成されます。


METADATA_REMAPプロシージャ

このプロシージャは、指定したジョブ内でオブジェクトが処理されるときに、オブジェクトに適用される再マッピングを指定します。

構文

DBMS_DATAPUMP.METADATA_REMAP (
   handle      IN NUMBER,
   name        IN VARCHAR2,
   old_value   IN VARCHAR2,
   value       IN VARCHAR2,
   object_type IN VARCHAR2 DEFAULT NULL);

パラメータ

表46-15 METADATA_REMAPプロシージャのパラメータ

パラメータ 説明

handle

現行ジョブのハンドル。現行のセッションは、OPENファンクションへのコールを使用して、あらかじめこのハンドルに連結しておく必要があります。

name

再マップの名前。使用可能な再マップについては、表46-16を参照してください。

old_value

valueにリセットするダンプ・ファイル・セット内の値を指定します。

value

再マップに使用するパラメータの値。old_valueを変換して得られる新しい値を指定します。

object_type

再マップが適用されるオブジェクト・タイプを指定します。各モードでサポートされるオブジェクト・タイプのリストは、DATABASE_EXPORT_OBJECTSSCHEMA_EXPORT_OBJECTSTABLE_EXPORT_OBJECTSおよびTABLESPACE_EXPORT_OBJECTSのカタログ・ビューに示されています。

デフォルトでは、再マップはジョブ内の利用可能なすべてのオブジェクトに適用されます。object_typeパラメータを使用すると、コール元はジョブ内の複数のオブジェクト・タイプにそれぞれ別のパラメータを指定できます。オブジェクト・タイプを明示的に指定する再マップは、すべてのオブジェクト・タイプに適用される再マップよりも優先されます。


表46-16に、METADATA_REMAPプロシージャによって提供される再マップを示します。

表46-16 METADATA_REMAPプロシージャによって提供される再マップ

名前 データ・タイプ オブジェクト・タイプ 意味

REMAP_SCHEMA

TEXT

スキーマ・オブジェクト

object_typeパラメータに一致し、old_valueスキーマ内に配置されたジョブ内のスキーマ・オブジェクトは、すべてvalueスキーマに移動します。

権限を付与されているユーザーは、スキーマの再マップを無制限に実行できます。

権限を付与されていないユーザーは、スキーマが再マップのターゲット・スキーマの場合にのみそれらのスキーマを再マップできます。

たとえば、SCOTTは、自分のBLAKEのオブジェクトをSCOTTに再マップできますが、SCOTTは、SCOTTのオブジェクトをBLAKEに再マップすることはできません。

REMAP_TABLESPACE

TEXT

TABLE、INDEX、ROLLBACK_SEGMENT、MATERIALIZED_VIEW、MATERIALIZED_VIEW_LOG、TABLE_SPACE

object_typeパラメータに一致し、old_value表領域内に配置されたジョブ内の記憶域セグメントは、すべてvalue表領域に再配置されます。

REMAP_DATAFILE

TEXT

LIBRARY、TABLESPACE、DIRECTORY

object_typeパラメータに一致し、old_valueデータファイルを参照したジョブ内のデータファイル参照は、すべてvalueデータファイルを使用するように再定義されます。

REMAP_TABLE

TEXT

TABLE

old_value表の名前に一致したジョブ内の表参照は、すべてvalue表の名前に置き換えられます。old_valueパラメータは、employees.lowなどのパーティションを参照する場合があります。これを使用すると、PARTITION_OPTIONS=DEPARTITIONパラメータで構成された表の名前をユーザーが指定できます。


例外

  • INVALID_HANDLE。指定されたハンドルは、データ・ポンプ・ジョブに連結していません。

  • INVALID_ARGVAL。このメッセージは、次のいずれかの状態を示します。

    • このジョブのモードには、指定されたobject_typeが含まれていません。

    • この再マップは、指定されたold_valueおよびobject_typeについてすでに指定されています。

  • INVALID_OPERATION。再マップは、SQL_FILE操作およびインポート操作でのみサポートされています。このジョブの操作はエクスポートであるため、メタデータの再マップはサポートされません。

  • INVALID_STATE。ジョブの開始後に、ユーザーがMETADATA_REMAPをコールしました(つまり、ジョブは定義中の状態ではありませんでした)。

  • INCONSISTENT_ARGSvalueの値が指定されていないか、再マップに適切なデータ・タイプではありません。

  • PRIVILEGE_ERROR。権限を付与されていないユーザーが、別のユーザーのスキーマに対してREMAP_SCHEMAまたはREMAP_DATAFILEを実行しようとしました。

  • SUCCESS_WITH_INFO。このプロシージャは成功しましたが、GET_STATUSプロシージャを使用するとさらに詳しい情報が得られます。

  • NO_SUCH_JOB。指定されたジョブは存在しません。

使用上の注意

  • METADATA_REMAPプロシージャは、インポート操作およびSQL_FILE操作のみでサポートされています。このプロシージャを使用すると、あらかじめ共通定義された再マップを、転送機能の一部としてオブジェクトの定義に適用できます。このプロシージャ内でサポートされない再マップが必要な場合は、先にSQL_FILE操作を実行して、該当するダンプ・ファイル・セットに対応するSQLスクリプトを作成します。DDLを直接編集してから実行することにより、必要な再マッピングを作成できます。

  • データ・ポンプAPIの変換とは、DBMS_METADATA.SET_TRANSFORM_PARAMETER APIによって実装される再マップのサブセットです。1つのジョブには複数の再マップを定義できます。ただし、個々の再マップの定義内容は、パラメータごとに一意である必要があります。つまり、競合したり重複する2つの再マップを指定することはできません。


METADATA_TRANSFORMプロシージャ

このプロシージャは、指定されたジョブ内でオブジェクトが処理されるときに、オブジェクトに適用される変換を指定します。

構文

DBMS_DATAPUMP.METADATA_TRANSFORM (
   handle      IN NUMBER,
   name        IN VARCHAR2,
   value       IN VARCHAR2,
   object_type IN VARCHAR2 DEFAULT NULL);
DBMS_DATAPUMP.METADATA_TRANSFORM (
   handle      IN NUMBER,
   name        IN VARCHAR2,
   value       IN NUMBER,
   object_type IN VARCHAR2 DEFAULT NULL);

パラメータ

表46-17 METADATA_TRANSFORMプロシージャのパラメータ

パラメータ 説明

handle

現行ジョブのハンドル。現行のセッションは、OPENファンクションへのコールを使用して、あらかじめこのハンドルに連結しておく必要があります。

name

変換名。使用可能な変換については、表46-18を参照してください。

value

変換に使用するパラメータの値。

object_type

変換が適用されるオブジェクト・タイプを指定します。各モードでサポートされるオブジェクト・タイプのリストは、DATABASE_EXPORT_OBJECTSSCHEMA_EXPORT_OBJECTSTABLE_EXPORT_OBJECTSおよびTABLESPACE_EXPORT_OBJECTSのカタログ・ビューに示されています。

デフォルトでは、変換はジョブ内の利用可能なすべてのオブジェクトに適用されます。object_typeパラメータを使用すると、コール元はジョブ内の複数のオブジェクト・タイプにそれぞれ別の変換パラメータを指定できます。オブジェクト・タイプを明示的に指定する変換は、すべてのオブジェクト・タイプに適用される変換よりも優先されます。


表46-18に、METADATA_TRANSFORMプロシージャによって提供される変換を示します。

表46-18 METADATA_TRANFORMプロシージャによって提供される変換

名前 データ・タイプ オブジェクト・タイプ 意味

PCTSPACE

NUMBER

TABLE

INDEX

TABLESPACE

エクステント割当ておよびデータファイルのサイズの変更に使用する百分率の乗数を指定します。大きい表領域をテスト用に縮小する場合に使用します。

デフォルトは100です。

SEGMENT_ATTRIBUTES

NUMBER

TABLE、INDEX

0(ゼロ)以外(TRUE)の場合は、記憶域セグメント・パラメータが発行されます。

デフォルトは1です。

STORAGE

NUMBER

TABLE

0 (ゼロ)以外(TRUE)の場合は、STORAGE句が発行されます。(SEGMENT_ATTRIBUTES0 (ゼロ)の場合は無視されます。)

デフォルトは0(ゼロ)以外(TRUE)です。

OID

NUMBER

TYPE

TABLE

0(ゼロ)の場合は、タイプまたは表の作成時に、エクスポートしたOIDの割当てを禁止します。この場合、新しいOIDが割り当てられます。

オブジェクト表でこの変換を使用すると、この表を指すREF列でブレークが発生します。

デフォルトは1です。

SEGMENT_CREATION

NUMBER

TABLE

0(ゼロ)以外(TRUE)の場合、CREATE TABLE文にSQL SEGMENT CREATION句が追加されます。つまり、CREATE TABLE文によって、明示的にSEGMENT CREATION DEFERREDまたはSEGMENT CREATION IMMEDIATEが指定されます。

値がFALSEの場合、CREATE TABLE文からSEGMENT CREATION句が省略されます。ロードされる表に対してデフォルトのセグメント作成属性を使用する場合は、このパラメータをFALSEに設定します。

デフォルトは0(ゼロ)以外(TRUE)です。

(この機能は、Oracle Database 11gリリース2(11.2.0.2)以上で使用できます。)


例外

  • INVALID_HANDLE。指定されたハンドルは、データ・ポンプ・ジョブに連結していません。

  • INVALID_ARGVAL。このメッセージは、次のいずれかの状態を示します。

    • トランスポータブル・モードのため、変換はサポートされません。

    • このジョブのモードには、指定されたobject_typeが含まれていません。

    • この変換は、指定されたvalueおよびobject_typeについてすでに指定されています。

  • INVALID_OPERATION。変換は、SQL_FILE操作およびインポート操作でのみサポートされています。このジョブの操作はエクスポートであるため、メタデータの変換はサポートされません。

  • INVALID_STATE。ジョブの開始後に、ユーザーがMETADATA_TRANSFORMをコールしました(つまり、ジョブは定義中の状態ではありませんでした)。

  • INCONSISTENT_ARGSvalueの値が指定されていないか、変換に適切なデータ・タイプではありません。

  • PRIVILEGE_ERROR。権限を付与されていないユーザーが、別のユーザーのスキーマに対してREMAP_SCHEMAまたはREMAP_DATAFILEを実行しようとしました。

  • SUCCESS_WITH_INFO。このプロシージャは成功しましたが、GET_STATUSプロシージャを使用するとさらに詳しい情報が得られます。

  • NO_SUCH_JOB。指定されたジョブは存在しません。

使用上の注意

  • METADATA_TRANSFORMプロシージャは、インポート操作およびSQL_FILE操作のみでサポートされています。このプロシージャを使用すると、あらかじめ共通定義された変換を、転送機能の一部としてオブジェクトの定義に適用できます。このプロシージャ内でサポートされない変換が必要な場合は、先にSQL_FILE操作を実行して、該当するダンプ・ファイル・セットに対応するSQLスクリプトを作成します。DDLを直接編集してから実行することにより、必要な変換を作成できます。

  • データ・ポンプAPIの変換とは、DBMS_METADATA.SET_TRANSFORM_PARAMETER APIによって実装される変換のサブセットです。1つのジョブには複数の変換を定義できます。ただし、個々の変換の定義内容は、パラメータごとに一意である必要があります。つまり、競合したり重複する2つの変換を指定することはできません。


OPENファンクション

このファンクションは、データ・ポンプAPIを使用して新規ジョブを設定するために使用します。戻されるハンドルは、他のすべてのプロシージャをコールするパラメータとして使用します(ATTACHファンクションを除く)。

構文

DBMS_DATAPUMP.OPEN (
   operation    IN VARCHAR2,
   job_mode         IN VARCHAR2,
   remote_link  IN VARCHAR2 DEFAULT NULL,
   job_name     IN VARCHAR2 DEFAULT NULL,
   version      IN VARCHAR2 DEFAULT 'COMPATIBLE'
 RETURN NUMBER;

パラメータ

表46-19 OPENファンクションのパラメータ

パラメータ 意味

operation

実行する操作のタイプ。表46-20に、有効な操作のタイプを示します。

job_mode

実行する操作の有効範囲。表46-21に、有効なモードを示します。NULLを指定すると、エラーになります。

remote_link

このパラメータの値がNULL以外の場合、現行ジョブのデータおよびメタデータのソースになるリモート・データベースへのデータベース・リンクの名前が使用されます。

job_name

ジョブの名前。名前は30文字に制限され、30文字を超える場合は、その部分が切り捨てられます。名前には、印刷可能な文字および空白を使用できます。ジョブの名前は、OPENファンクションを実行中のユーザーのスキーマによって暗黙的に修飾され、そのスキーマについて一意である必要があります(つまり、同じ名前を使用する他のデータ・ポンプ・ジョブは存在しません)。

この名前は、API内でジョブを特定するときと、リソース不足でジョブが一時停止した場合にDBA_RESUMABLEビューでジョブを特定する場合など他のデータベース・コンポーネント内でジョブを特定するときに使用します。名前を指定しない場合は、システムによって"SYS_<OPERATION>_<MODE>_%N"という書式の名前が生成されてジョブに与えられます。

デフォルトのジョブ名は、%Nに'01'から順に2桁の整数が代入されて生成されます("SYS_IMPORT_FULL_03"など)。ジョブに指定される名前は、マスター表や、ジョブに関連する他のリソースを命名する場合にも使用されます。

version

抽出されるデータベース・オブジェクトのバージョン。このオプションは、エクスポート、ネットワーク・インポートおよびSQL_FILEの各操作のみで有効です。このバージョンと互換性のないデータベース・オブジェクトまたは属性は抽出されません。このパラメータに指定できる値は次のとおりです。

  • COMPATIBLE : (デフォルト)データベース互換性レベルおよび機能の互換性リリース・レベルに対応するメタデータのバージョン(V$COMPATIBILITYビューで表示されます)。データベース互換性は9.2以上に設定する必要があります。

  • LATEST: データベース・バージョンに対応するメタデータのバージョン。

  • '10.0.0'など特定のデータベース・バージョン。Oracle Database10g では、この値が10.0.0より小さくなることはありません。


表46-20に、OPENファンクションで有効な操作タイプを示します。

表46-20 OPENファンクションで有効な操作タイプ

操作 説明

EXPORT

データおよびメタデータをダンプ・ファイル・セットに保存します。または操作に必要なデータの見積りサイズを取得します。

IMPORT

データおよびメタデータをダンプ・ファイル・セットあるいはデータベース・リンクからリストアします。

SQL_FILE

ダンプ・ファイル・セット内あるいはネットワーク・リンクからのメタデータをSQLスクリプトとして表示します。SQLスクリプトの場所は、ADD_FILEプロシージャで指定します。


表46-21に、OPENファンクションで有効なモードを示します。

表46-21 OPENファンクションで有効なモード

モード 説明

FULL

SYSXDB、ORDSYSMDSYSCTXSYSORDPLUGINSおよびLBACSYSの各スキーマを除いた、全データベースおよび全ダンプ・ファイル・セットで動作します。

SCHEMA

選択された一連のスキーマで動作します。デフォルトは現行のユーザーのスキーマです。選択されたスキーマ内のすべてのオブジェクトが処理されます。SYSXDBORDSYSMDSYSCTXSYSORDPLUGINSまたはLBACSYSの各スキーマは、このモードに指定できません。

TABLE

選択された一連の表で動作します。デフォルトは、現行のユーザーのスキーマ内のすべての表です。表およびその表が依存するオブジェクトのみが処理されます。

TABLESPACE

選択された一連の表領域で動作します。デフォルトはありません。指定された表領域内に記憶域を持つ表が、表モードと同じ方法で処理されます。

TRANSPORTABLE

選択された一連の表領域内の表(およびその表が依存するオブジェクト)に関するメタデータで動作し、トランスポータブル表領域のエクスポートおよびインポートを実行します。


戻り値

  • ジョブに対する曖昧なハンドル。このハンドルを入力として使用できるプロシージャは、ADD_FILECREATE_JOB_VIEWDATA_FILTERDETACHGET_STATUSLOG_ENTRYLOG_ERROR、METADATA_FILTERMETADATA_REMAPMETADATA_TRANSFORMSET_PARALLEL、SET_PARAMETERSTART_JOB、STOP_JOBおよびWAIT_FOR_JOBです。

例外

  • INVALID_ARGVAL。無効なoperationパラメータまたはmodeパラメータが指定されました。入力パラメータにNULLまたは無効な値が指定されています。該当のパラメータはエラー・メッセージのテキストで示されます。

  • JOB_EXISTS。指定したジョブ名の表は、すでに存在しています。

  • PRIVILEGE_ERROR。ユーザーには指定したモードを使用する必要な権限またはロールがありません。

  • INTERNAL_ERROR。ジョブが不適切なスキーマで作成されたか、マスター表の書式が不適切です。

  • SUCCESS_WITH_INFO。このファンクションは成功しましたが、GET_STATUSプロシージャを使用するとさらに詳しい情報が得られます。

  • NO_SUCH_JOB。指定されたジョブは存在しません。

使用上の注意

  • ジョブが作成されると、コール元のデフォルト表領域内のスキーマのもとで、そのジョブのマスター表が作成されます。ジョブを参照するハンドルが戻され、現行セッションがこのジョブに連結されます。いったん連結されると、明示的または暗黙的に連結が解除されるまで、このハンドルは保持されます。ハンドルは、コール元のセッションでのみ有効です。ATTACHファンクションを使用すると、同じジョブに対して異なるセッションから別のハンドルを連結できます。

  • OPENファンクションへのコールが失敗した場合は、GET_STATUSプロシージャがNULLハンドルを使ってコールすると、この失敗に関する詳細を参照できます。


SET_PARALLELプロシージャ

このプロシージャは、ジョブ内の並列度を調整します。

構文

DBMS_DATAPUMP.SET_PARALLEL(
   handle      IN NUMBER,
   degree      IN NUMBER);

パラメータ

表46-22 SET_PARALLELプロシージャのパラメータ

パラメータ 説明

handle

ジョブのハンドル。現行のセッションは、OPENファンクションまたはATTACHファンクションへのコールを使用して、あらかじめこのハンドルに連結しておく必要があります。

degree

ジョブに使用可能なワーカー・プロセスの最大数。このパラメータを使用して、ジョブに使用するリソースの量を調整します。


例外

  • INVALID_HANDLE。指定されたハンドルは、データ・ポンプ・ジョブに連結していません。

  • INVALID_OPERATIONSET_PARALLELプロシージャは、エクスポート操作およびインポート操作のみで有効です。

  • INVALID_ARGVAL。無効な値が入力パラメータに指定されました。

  • SUCCESS_WITH_INFO。このプロシージャは成功しましたが、GET_STATUSプロシージャを使用するとさらに詳しい情報が得られます。

  • NO_SUCH_JOB。指定されたジョブは存在しません。

使用上の注意

  • SET_PARALLELプロシージャは、Oracle DatabaseのEnterprise Editionでのみ使用できます。

  • SET_PARALLELプロシージャは、ジョブに連結されたどのセッションでも実行できます。ジョブは、定義中、アイドル、実行中のいずれかの状態でなければなりません。

  • 並列度を下げた場合の影響は遅れて現れることがありますが、これは実行中の作業が正しい完了ポイントを見つけてからSET_PARALLELを有効にする必要があるためです。

  • 並列度を下げても、ジョブに関連付けられたワーカー・プロセス数は減少しません。任意の指定時間に実行されるワーカー・プロセス数が減少するだけです。

  • 並列度を上げた場合の影響は、並列して実行できる作業があればすぐに現れます。

  • ユーザーが要求する並列度は、リソース・マネージャの設定に基づいて下げるか、あるいはinit.oraファイルに含まれるPROCESSESまたはSESSIONSの各初期化パラメータによって設定される制限を使用して下げることができます。

  • エクスポート・ジョブをn度まで並列化するには、ダンプ・ファイル・セット内にn個のファイルを指定するか、ファイル指定で置換変数を指定する必要があります。この指定を行わない場合、ファイルの待機中に一部のワーカー・プロセスがアイドルになります。

  • SQL_FILE操作は常に1度で動作します。トランスポータブル・モードで実行されるジョブは常に1度で動作します。


SET_PARAMETERプロシージャ

このプロシージャは、ジョブ処理オプションの指定に使用します。

構文

DBMS_DATAPUMP.SET_PARAMETER(
   handle       IN NUMBER,
   name         IN VARCHAR2,
   value        IN VARCHAR2);

DBMS_DATAPUMP.SET_PARAMETER (
   handle      IN NUMBER,
   name        IN VARCHAR2,
   value       IN NUMBER);

パラメータ

表46-23 SET_PARAMETERプロシージャのパラメータ

パラメータ 説明

handle

ジョブのハンドル。現行のセッションは、OPENファンクションへのコールを使用して、あらかじめこのハンドルに連結しておく必要があります。

name

パラメータの名前。有効なパラメータの名前は、表46-24を参照してください。

value

指定したパラメータの値。


表46-24に、SET_PARAMETERプロシージャのnameパラメータに有効なオプションを示します。

表46-24 SET_PARAMETERプロシージャのnameパラメータに有効なオプション

パラメータ名 データ・タイプ サポートされる操作 意味

CLIENT_COMMAND

TEXT

すべて

クライアント・パースペクティブで現行の操作を表した不透明文字列。コマンドライン・プロシージャはこの文字列を使用して、ジョブの開始に使用したオリジナル・コマンドを保存します。

COMPRESSION

TEXT

エクスポート

ダンプ・ファイル・セットのサイズとエクスポート操作およびインポート操作の実行に要する時間は、トレードオフの関係にあります。

DATA_ONLYオプションは、ダンプ・ファイル・セットのユーザー・データのみを圧縮します。

METADATA_ONLYオプションは、ダンプ・ファイル・セットのメタデータのみを圧縮します。

ALLオプションは、ユーザー・データとメタデータの両方を圧縮します。

NONEオプションは、ダンプ・ファイル・セットを未圧縮形式で格納します。

METADATA_ONLYおよびNONEオプションには、10.2以上のジョブ・バージョンが必要です。その他のすべてのオプションには、11.1以上のジョブ・バージョンが必要です。

デフォルトはMETADATA_ONLYです。

DATA_OPTIONS

NUMBER

エクスポートおよびインポート

ジョブを処理するための特別なオプションを指定するビット・マスク。指定可能な値は次のとおりです。

  • KU$_DATAOPT_SKIP_CONST_ERR

  • KU$_DATAOPT_XMLTYPE_CLOB

  • KU$_DATAOPT_DISABL_APPEND_HINT

エクスポートでは、KU$_DATAOPT_XMLTYPE_CLOB値がサポートされています。このオプションでは、ダンプ・ファイルの圧縮済XMLType列はXML文書ではなくCLOBとして格納されます。

インポートでは、KU$_DATAOPT_SKIP_CONST_ERR値がサポートされています。このオプションを指定した場合、データをユーザー表にインポートしているときに制約違反が発生した場合に、違反の原因となる行が拒否され、ロードが続行されます。このオプションを設定しない場合、制約エラーによってパーティション全体(またはパーティション化されていない表の表)のロードが中断されます。このオプションを設定すると、特に一意の索引または制約を含む既存の表では、パフォーマンスに影響がでる場合があります。

インポートでは、KU$_DATAOPT_DISABL_APPEND_HINT値もサポートされています。このオプションにより、APPENDヒントがデータ・ロードに適用されません。データベースにすでに存在する、ロード対象のデータ・オブジェクトの小さいセットがあり、他のいくつかのアプリケーションが1つ以上のデータ・オブジェクトに同時にアクセスしている場合、APPENDヒントを無効にすると役立ちます。

このパラメータを使用するには、OPENファンクションのversionを11.1以上に設定する必要があります。

デフォルトは0(ゼロ)です。

ENCRYPTION

TEXT

エクスポート

次のように、ダンプ・ファイル・セットで暗号化する対象を指定します。

ALLを指定すると、エクスポート操作ですべてのデータおよびメタデータを暗号化できます。

DATA_ONLYを指定すると、データのみがダンプ・ファイル・セットに暗号化形式で書き込まれます。

ENCRYPTED_COLUMNS_ONLYを指定すると、暗号化された列のみがダンプ・ファイル・セットに暗号化形式で書き込まれます。

METADATA_ONLYを指定すると、メタデータのみがダンプ・ファイル・セットに暗号化形式で書き込まれます。

NONEを指定すると、データはダンプ・ファイル・セットに暗号化形式で書き込まれません。

このパラメータには、11.1以上のジョブ・バージョンが必要です。

デフォルト値は、使用される暗号化関連パラメータの組合せによって異なります。暗号化を有効にするには、ENCRYPTIONまたはENCRYPTION_PASSWORDのいずれか、あるいはその両方を指定する必要があります。ENCRYPTION_PASSWORDのみを指定した場合、ENCRYPTIONのデフォルト値はALLとなります。ENCRYPTIONENCRYPTION_PASSWORDのいずれも指定しない場合、ENCRYPTIONのデフォルト値はNONEとなります。

ALLDATA_ONLYまたはMETADATA_ONLYを指定するには、COMPATIBLE初期化パラメータを11.1以上に設定する必要があります。

注意: エクスポート対象のデータに暗号化が必要なSecureFilesが含まれている場合は、ENCRYPTION=ALLを指定してダンプ・ファイル・セット全体を暗号化する必要があります。ダンプ・ファイル・セット全体の暗号化は、データ・ポンプ・エクスポート操作中にSecureFilesの暗号化セキュリティを実現する唯一の方法です。

ENCRYPTION_ALGORITHM

TEXT

エクスポート

暗号化の実行に使用する必要のある暗号化アルゴリズムを指定します。設定可能な値は、AES128AES192およびAES256です。

ENCRYPTION_ALGORITHMパラメータを使用する場合は、ENCRYPTIONまたはENCRYPTION_PASSWORDも指定する必要があり、指定しない場合は、エラーが戻されます。暗号化アルゴリズムの詳細は、『Oracle Database Advanced Security管理者ガイド』を参照してください。

このパラメータには、11.1以上のジョブ・バージョンが必要です。

デフォルトはAES128です。

ENCRYPTION_MODE

TEXT

エクスポート

暗号化および復号化で使用するセキュリティ・タイプを指定します。値は次のとおりです。

PASSWORDでは、暗号化されたダンプ・ファイル・セットの作成時に、パスワードを指定する必要があります。ダンプ・ファイル・セットをインポートするときは同じパスワードを指定する必要があります。PASSWORDモードでは、ENCRYPTION_PASSWORDパラメータを指定する必要もあります。PASSWORDモードは、ダンプ・ファイル・セットを別のデータベースまたはリモートのデータベースにインポートするときに、送信中にセキュリティを確保する必要がある場合に最適です。

TRANSPARENTを指定すると、必要なOracle Encryption Walletが使用可能な場合に、暗号化されたダンプ・ファイル・セットをデータベース管理者(DBA)による介入なしで作成できます。したがって、ENCRYPTION_PASSWORDパラメータは必要なく、実際にTRANSPARENTモードで使用するとエラーが発生します。この暗号化モードは、ダンプ・ファイル・セットをエクスポート元と同じデータベースにインポートする場合に最適です。

DUALでは、Oracle Encryption WalletまたはENCRYPTION_PASSWORDパラメータで指定したパスワードのいずれかを使用して後からインポートすることができる、ダンプ・ファイル・セットが作成されます。DUALモードは、Oracle Encryption Walletを使用してダンプ・ファイル・セットをオンサイトにインポートし、Oracle Encryption Walletを使用できないオフサイトにもインポートが必要な場合に最適です。

ENCRYPTION_MODEパラメータを使用する場合は、ENCRYPTIONまたはENCRYPTION_PASSWORDパラメータのいずれかを使用する必要もあります。そうでない場合は、エラーが戻されます。

DUALまたはTRANSPARENTモードを使用するには、COMPATIBLE初期化パラメータを11.1以上に設定する必要があります。

デフォルト・モードは、使用されるその他の暗号化関連パラメータによって異なります。ENCRYPTIONのみを指定した場合、デフォルト・モードはTRANSPARENTとなります。ENCRYPTION_PASSWORDが指定され、Oracle Encryption Walletがオープン状態の場合、デフォルトはDUALとなります。ENCRYPTION_PASSWORDを指定し、Oracle Encryption Walletがクローズしている場合、デフォルトはPASSWORDとなります。

ENCRYPTION_PASSWORD

TEXT

エクスポートおよびインポート

暗号化された表の列、メタデータまたは表データがダンプ・ファイル・セットにクリア・テキストで書き込まれないように、再暗号化するためのキーを指定します。エクスポート操作に暗号化された表の列が含まれていて、暗号化パスワードが指定されていない場合、暗号化された列はダンプ・ファイル・セットにクリア・テキストで書き込まれ、警告が発行されます。

注意: データ・ポンプの暗号化機能は、Oracle Database 11gリリース1(11.1)で変更されました。11.1より前のリリースでは、ENCRYPTION_PASSWORDパラメータは暗号化された列にのみ適用されました。しかし、リリース11.1では、新しいENCRYPTIONパラメータに他のタイプのデータを暗号化するためのオプションがあります。つまり、ENCRYPTIONと固有のオプションを指定せずにENCRYPTION_PASSWORDを指定すると、ダンプ・ファイルに書き込まれるすべてのデータが暗号化されるようになりました(ENCRYPTION=ALLを指定した場合と同じ)。暗号化列のみを再暗号化する場合は、ENCRYPTION_PASSWORDに加えてENCRYPTION=ENCRYPTED_COLUMNS_ONLYを指定する必要があります。

エクスポート操作では、ENCRYPTION_MODEPASSWORDまたはDUALのいずれかに設定した場合に、このパラメータが必要になります。

ENCRYPTION_PASSWORDを指定して、ENCRYPTION_MODEを指定しない場合は、ENCRYPTION_MODEのデフォルトがPASSWORDとなるため、透過的なデータの暗号化を設定する必要はありません。

ENCRYPTION_PASSWORDパラメータは、要求された暗号化モードがTRANSPARENTの場合は有効になりません。

ENCRYPTION_MODEDUALに設定した場合にENCRYPTION_PASSWORDパラメータを使用するには、透過的なデータの暗号化を設定する必要があります。透過的なデータの暗号化の詳細は、『Oracle Database Advanced Security管理者ガイド』を参照してください。

ネットワーク・エクスポートの場合、ENCRYPTION_PASSWORDパラメータとENCRYPTION=ENCRYPTED_COLUMNS_ONLYの併用は、暗号化された列を含むユーザー定義の外部表ではサポートされていません。表はスキップされ、エラー・メッセージが表示されますが、ジョブは続行します。

すべての列の暗号化属性が、エクスポートされた表定義とターゲット表との間で一致する必要があります。

このパラメータには、10.2以上のジョブ・バージョンが必要です。

ESTIMATE

TEXT

エクスポートおよびインポート

表のサイズの見積りメソッドが、ジョブの開始前に実行されるように指定します。

BLOCKSを指定すると、ユーザー表に割り当てられたブロック数を使用して、ユーザー表の見積りサイズが計算されます。

STATISTICSを指定すると、ユーザー表の見積りサイズが、個々の表に関連付けられた統計を使用して計算されます。統計が表に関連付けられていない場合は、BLOCKSを使用して表のサイズが見積もられます。

ESTIMATEパラメータは、トランスポータブル表領域モードでは使用できません。

デフォルトはBLOCKSです。

ESTIMATE_ONLY

NUMBER

エクスポート

エクスポート・ジョブの見積り部分のみが実行されるように指定します。このオプションは、エクスポートのサイズが不明の場合にダンプ・ファイルのサイズを見積もる場合に役立ちます。

FLASHBACK_SCN

NUMBER

エクスポートおよびネットワーク・インポート

ユーザー・データを読み取るためのトランザクション一貫性ポイントとして機能するシステム変更番号(SCN)。FLASHBACK_SCNまたはFLASHBACK_TIMEのどちらも指定しない場合は、ロジカル・スタンバイ・データベースおよびStreamsのターゲットを除いて、パーティション間にトランザクション一貫性は存在しません。FLASHBACK_SCNは、トランスポータブル・モードではサポートされません。

FLASHBACK_TIME

TEXT

エクスポートおよびネットワーク・インポート

ユーザー・データを読み取るための一貫性ポイントの決定で使用される日付と時間、あるいはTO_TIMESTAMP(...)という書式の文字列。

FLASHBACK_SCNまたはFLASHBACK_TIMEのどちらも指定しない場合は、パーティション間にトランザクション一貫性は存在しません。

FLASHBACK_SCNおよびFLASHBACK_TIMEの両方を、同じジョブに対して指定できません。FLASHBACK_TIMEは、トランスポータブル・モードではサポートされません。

INCLUDE_METADATA

NUMBER

エクスポートおよびインポート

0(ゼロ)以外に設定すると、ユーザー表のデータとともにオブジェクトのメタデータが移動します。

0(ゼロ)に設定すると、オブジェクトのメタデータは移動しません。このパラメータは、エクスポート操作をユーザー・データのアンロードに変換し、インポート操作をユーザー・データのロードに変換します。

INCLUDE_METADATAは、トランスポータブル・モードではサポートされません。

デフォルトは1です。

PARTITION_OPTIONS

TEXT

インポート

インポート操作中に、パーティション化された表を処理する方法を指定します。オプションは次のとおりです。

NONEは、パーティションがソース・データベースに存在していたのと同様にターゲット・データベースで再生成されることを意味します。

DEPARTITIONは、ジョブに記憶域が含まれる各パーティションまたはサブパーティションが、パーティション化されていない個々の表として再生成されることを意味します。サブパーティション化された中間パーティションは、(そのサブパーティションが表に変換される場合でも)再作成されません。作成される表の名前は、REMAP_TABLEメタデータ変換によってその名前が上書きされないかぎり、元の表の名前およびパーティションの名前からシステムによって生成されます。

MERGEは、パーティション化された各表が、パーティション化されていない表としてターゲット・データベースに再作成されることを意味します。すべてのソース・パーティションからのデータは、単一の記憶域セグメントにマージされます。このオプションは、トランスポータブル・ジョブの場合またはTRANSPORTABLEパラメータをALWAYSにした場合は、サポートされません。

このパラメータには、11.1以上のジョブ・バージョンが必要です。

デフォルトはNONEです。

SKIP_UNUSABLE_INDEXES

NUMBER

インポート

0(ゼロ)以外に設定すると、使用できない索引が含まれる表に行が挿入されます。SKIP_UNUSABLE_INDEXESは、トランスポータブル・モードではサポートされません。

デフォルトは1です。

SOURCE_EDITION

TEXT

エクスポートおよびネットワーク・インポート

エクスポートおよびネットワーク・インポートのためにアンロードするオブジェクトを決定するために使用されるアプリケーション・エディション。

TABLE_EXISTS_ACTION

TEXT

インポート

既存の表にデータがロードされるときに実行されるアクションを指定します。指定可能なアクションは、TRUNCATEREPLACEAPPENDおよびSKIPです。

INCLUDE_METADATA=0の場合、TRUNCATEおよびAPPENDのみがサポートされます。

TRUNCATEを指定すると、インポートによって行が挿入される前に、既存の表から行が削除されます。

外部キー制約で参照される表に対してTRUNCATEを指定した場合、TRUNCATEREPLACEに変更される点に注意してください。

REPLACEを指定すると、既存の表が新しい定義で置き換えられます。新しい表が作成される前に、既存の表が削除されます。

APPENDを指定すると、表の既存の行に新規の行が追加されます。

SKIPを指定すると、既存の表は変更されずそのまま残ります。

TABLE_EXISTS_ACTIONは、トランスポータブル・モードではサポートされません。

インポートにメタデータが含まれる場合のデフォルトは、SKIPです。INCLUDE_METADATAを0(ゼロ)に設定した場合、デフォルトはAPPENDです。

TABLESPACE_DATAFILE

TEXT

インポート

トランスポータブル表領域セット内のデータファイルに対して完全なファイル指定を指定します。TABLESPACE_DATAFILEは、トランスポータブル・モードのインポートでのみ有効です。

TABLESPACE_DATAFILEは複数回指定できますが、指定ごとに異なる値を設定する必要があります。

TARGET_EDITION

TEXT

インポート

インポートおよびネットワーク・インポートのためにオブジェクトをロードする場所を決定するために使用されるアプリケーション・エディション。

TRANSPORTABLE

TEXT

エクスポート

エクスポート操作を表モードで実行する場合、トランスポータブル表領域を使用してデータを移動できます。親スキーマ(表)に関連付けられていない移動済の表領域の記憶域セグメントは、インポート時に再要求されます。個々のパーティションが表モードのジョブで選択された場合、これらのパーティションで参照される表領域のみが移動します。インポート中、移動したパーティションは、PARTITION_OPTIONS=DEPARTITIONパラメータを使用して表としてのみ再構成できます。

TRANSPORTABLEパラメータを使用すると、下位バージョンのデータベースまたは異なるキャラクタ・セットを使用したデータベースへのダンプ・ファイルの後続のインポートは禁止されます。また、ターゲット・データベースが異なるプラットフォームに存在する場合、データファイルを変換する必要がある場合もあります。OPENコールでネットワーク・リンクが指定される場合は、TRANSPORTABLEパラメータを使用できません。

このパラメータに指定できる値は次のとおりです。

ALWAYS - データの移動は、常にデータファイルの移動によって行われます。

NEVER: ユーザー・データのコピーにデータファイルは使用されません。

このパラメータには、11.1以上のジョブ・バージョンが必要です。

デフォルトはNEVERです。

TTS_FULL_CHECK

NUMBER

エクスポート

0(ゼロ)以外に設定すると、トランスポータブル表領域セットがこのセット以外のオブジェクトに対して依存性(具体的にはINポインタ)がなく、セットのほうでもこのオブジェクトに対して依存性がないことが検証されます。トランスポータブル・モードのエクスポートでのみ有効です。

デフォルトは0(ゼロ)です。

USER_METADATA

NUMBER

エクスポートおよびネットワーク・インポート

スキーマ・モードの操作では、0(ゼロ)以外に設定すると、ユーザーのスキーマを作り直すメタデータ(エクスポートされたスキーマへの権限付与など)も操作の一部として指定されます。設定ユーザーは、このパラメータを設定する権限を明示的に与えられている必要があります。

USER_METADATAパラメータは、表モード、表領域モード、トランスポータブル表領域モードでは使用できません。

ユーザーがDATAPUMP_EXP_FULL_DATABASEロールを持っている場合、デフォルトは1です。その他の場合は0(ゼロ)です。


例外

  • INVALID_HANDLE。指定されたハンドルは、データ・ポンプ・ジョブに連結していません。

  • INVALID_ARGVAL。この例外は、次のいずれかの原因によるものです。

    • 入力パラメータに無効な名前が指定されました。

    • valueに不適切なデータ・タイプが使用されています。

    • valueが指定されていません。

    • 指定したvalueは、指定のパラメータ名では許可されていません。

    • フラッシュバック・パラメータが設定されていますが、別のフラッシュバック・パラメータがすでに設定されています。

    • 複製定義をサポートしないパラメータが指定されました。

  • INVALID_OPERATION。指定された操作は、このコンテキストでは無効です。

  • INVALID_STATE。指定されたジョブは、定義中の状態にありません。

  • INCONSISTENT_ARGS。指定されたパラメータは現行の操作タイプでサポートされていないか、現行のモードでサポートされていません。

  • PRIVILEGE_ERROR。このユーザーには、指定されたパラメータに必要なDATAPUMP_EXP_FULL_DATABASEロールまたはDATAPUMP_IMP_FULL_DATABASEロールがありません。

  • SUCCESS_WITH_INFO。このプロシージャは成功しましたが、GET_STATUSプロシージャを使用するとさらに詳しい情報が得られます。

  • NO_SUCH_JOB。指定されたジョブは存在しません。

使用上の注意

  • SET_PARAMETERプロシージャは、現行のジョブにオプション機能を指定するために使用します。サポートされるオプションのリストについては、表46-24を参照してください。


START_JOBプロシージャ

このプロシージャは、ジョブの実行を開始または再開します。

構文

DBMS_DATAPUMP.START_JOB (
   handle       IN NUMBER,
   skip_current    IN  NUMBER DEFAULT 0,
   abort_step      IN  NUMBER DEFAULT 0,
   cluster_ok      IN  NUMBER DEFAULT 1,
   service_name    IN  VARCHAR2 DEFAULT NULL);

パラメータ

表46-25 START_JOBプロシージャのパラメータ

パラメータ 説明

handle

ジョブのハンドル。現行のセッションは、OPENファンクションまたはATTACHファンクションへのコールを使用して、あらかじめこのハンドルに連結しておく必要があります。

skip_current

0(ゼロ)以外に設定すると、前回ジョブを実行したときに進行中だったアクションは、ジョブの再開時にスキップされます。スキップは、インポート・ジョブのみで有効です。この仕組みにより、致命的なバグを引き起こし、ジョブの不完全終了の原因となるアクションをスキップできます。再開時には複数のアクションをスキップできます。スキップされたアクションは、ログ・ファイルで特定できます。前回ドメイン索引を処理中だった場合は、ドメイン索引のサブコンポーネントのみでエラーが発生した場合でも、再開時にはドメイン索引のすべての部分がスキップされます。

スキップされたアクションに関する説明は、ログ・ファイルに記録されます。skip_currentは、ジョブで最初にSTART_JOBをコールした場合には無視されます。

0(ゼロ)に設定した場合は、再開時に失われるデータやメタデータはありません。

abort_step

値は0にする必要があります。この引数に0以外の値を挿入すると、意図しない結果が発生します。

cluster_ok

0の場合、すべてのワーカーは現在のインスタンスで開始されます。それ以外の場合、ワーカーはジョブで使用できるインスタンスで開始されます。

service_name

指定すると、ジョブを特定のインスタンスまたは特定のリソース・グループに制約するために使用されるサービス名を示します。


例外

  • INVALID_HANDLE。指定されたハンドルは、データ・ポンプ・ジョブに連結していません。

  • INVALID_STATE。この例外の原因は、次のいずれかです。

    • エクスポート・ジョブ、ネットワーク以外のインポート・ジョブまたはSQL_FILEジョブに対してファイルがまったく定義されていません。

    • SQL_FILEジョブに出力を定義するためのADD_FILEプロシージャがコールされていません。

    • トランスポータブル・モードのインポート・ジョブにTABLESPACE_DATAFILEパラメータが定義されていません。

    • トランスポータブル・モードまたは表領域モードのエクスポート・ジョブまたはネットワーク・ジョブにTABLESPACE_EXPRメタデータ・フィルタが定義されていません。

    • インポート・ジョブまたはSQL_FILEジョブのダンプ・ファイル・セットが不完全であるか、マスター表の指定がありません。

  • INVALID_OPERATION。ダンプ・ファイル・セットからマスター表をリストアできません。

  • INTERNAL_ERROR。ジョブの開始時に非一貫性が検出されました。詳細は、GET_STATUSプロシージャを使用して参照できます。

  • SUCCESS_WITH_INFO。このプロシージャは成功しましたが、GET_STATUSプロシージャを使用するとさらに詳しい情報が得られます。

  • NO_SUCH_JOB。指定されたジョブは存在しません。

使用上の注意

  • 該当するジョブの開始または再開を要求するためにこのプロシージャがコールされると、ジョブの状態が定義中またはアイドルから実行中に変わります。

  • SET_PARALLELプロシージャがSTART_JOBプロシージャの前にコールされていない場合は、ジョブで使用される並列度の初期値は1になります。ジョブの開始前にSET_PARALLELがコールされた場合は、最後のSET_PARALLELコールで指定されたdegreeによってジョブの並列度が決定されます。再開時のジョブの並列度は、別のSET_PARALLELコールが優先されない限り、前回の並列度設定によって決定されます。

  • 停止したジョブを再開する場合は、START_JOBプロシージャを実行する前にATTACHファンクションを実行する必要があります。


STOP_JOBプロシージャ

このプロシージャはジョブを終了させますが、オプションでジョブの状態を保存できます。

構文

DBMS_DATAPUMP.STOP_JOB (
   handle      IN NUMBER,
   immediate   IN NUMBER DEFAULT 0,
   keep_master IN NUMBER DEFAULT NULL,
   delay       IN NUMBER DEFAULT 60);

パラメータ

表46-26 STOP_JOBプロシージャのパラメータ

パラメータ 説明

handle

ジョブのハンドル。現行のセッションは、OPENファンクションまたはATTACHファンクションへのコールを使用して、あらかじめこのハンドルに連結しておく必要があります。このプロシージャが終了すると、ユーザーはハンドルから連結を解除されます。

immediate

0(ゼロ)以外に設定すると、ワーカー・プロセスは即座に中断されます。これによって、ジョブは速く停止しますが、将来ジョブを再開する場合にジョブの一部の再実行が必要になります。

0(ゼロ)に設定すると、ワーカー・プロセスは終了する前に現行の作業項目(メタデータまたは表データ)を完了できます。現行の作業を終了中、ジョブは停止保留中の状態になります。

keep_master

0(ゼロ)以外に設定すると、ジョブの停止時にマスター表が保存されます。0(ゼロ)に設定すると、ジョブの停止時にマスター表が削除されます。マスター表が削除されると、ジョブを再開できなくなります。エクスポート・ジョブの最中にマスター表が削除された場合、作成されたダンプ・ファイルは削除されます。

delay

連結している他のセッションが強制的に連結を解除されるまでに待機する秒数。遅延を利用して、このジョブに連結している他のセッションに対して、停止が実行されたことを通知できます。すべてのクライアントが連結を解除するか遅延が完了するまで、ジョブの稼働状態が保たれます。遅延を指定しない場合、デフォルトの遅延は60秒です。遅延をあまり短く指定すると、クライアントがGET_STATUSプロシージャからジョブの最終メッセージを取得できない可能性があります。


例外

  • INVALID_HANDLE。指定されたハンドルは、データ・ポンプ・ジョブに連結していません。

  • INVALID STATE。ジョブはすでに停止状態または完了状態にあります。

  • SUCCESS_WITH_INFO。このプロシージャは成功しましたが、GET_STATUSプロシージャを使用するとさらに詳しい情報が得られます。

  • NO_SUCH_JOB。指定されたジョブは存在しません。

使用上の注意

  • このプロシージャは、該当ジョブの実行停止を要求するために使用します。

  • 実行中状態のジョブを終了するには、正常な方法で完了するために数分かかることがあります。

  • 定義中、アイドル、完了中の状態にあるジョブの場合、このプロシージャの機能はDETACHプロシージャの機能と同じになります。

  • いったん停止したジョブは、マスター表とダンプ・ファイル・セットが元の状態で残されているかぎり、ATTACHファンクションおよびSTART_JOBプロシージャを使用して再開できます。

  • KEEP_MASTERパラメータを指定しない場合で、ジョブが定義中の状態にあるかトランスポータブル・モードの場合、マスター表は削除されます。それ以外の場合、マスター表は保持されます。


WAIT_FOR_JOBプロシージャ

このプロシージャは、正常に完了するか、またはなんらかの理由で停止するまでジョブを実行します。

構文

DBMS_DATAPUMP.WAIT_FOR_JOB (
  handle      IN   NUMBER,
  job_state   OUT  VARCHAR2);

パラメータ

表46-27 WAIT_FOR_JOBプロシージャのパラメータ

パラメータ 説明

handle

ジョブのハンドル。現行のセッションは、OPENファンクションまたはATTACHファンクションへのコールを使用して、あらかじめこのハンドルに連結しておく必要があります。このプロシージャが終了すると、ユーザーはハンドルから連結を解除されます。

job_state

実行が停止したときのジョブの状態。停止または完了のいずれかの状態になります。


例外

  • SUCCESS_WITH_INFO。このプロシージャは成功しましたが、GET_STATUS APIを使用するとさらに詳しい情報が得られます。

  • INVALID_HANDLE。ジョブ・ハンドルが有効ではありません。

使用上の注意

このプロシージャは、データ・ポンプ・ジョブの完了を待機する簡単なメカニズムです。このジョブは、WAIT_FOR_JOBをコールする前に開始する必要があります。WAIT_FOR_JOBが戻されると、ジョブは実行されなくなります。ジョブが正常に完了すると、最終ステータスは完了状態になります。ジョブがSTOP_JOB要求または内部エラーのため実行を停止した場合、最終ステータスは停止状態になります。