ヘッダーをスキップ
Oracle Database PL/SQLパッケージ・プロシージャおよびタイプ・リファレンス
10g リリース2(10.2)
B19245-02
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

27 DBMS_DATAPUMP

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


関連項目:

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

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


DBMS_DATAPUMPの使用方法

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


概要

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


セキュリティ・モデル

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

ロール

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

EXP_FULL_DATABASE

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

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


IMP_FULL_DATABASE

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

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



定数

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

マスク・ビット定義

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

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

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


データ構造

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パッケージは、次の種類のオブジェクト・タイプを定義します。

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

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

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サブプログラムの要約

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

サブプログラム 説明

ADD_FILEプロシージャ


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

ATTACHファンクション


定義中、実行中、アイドルまたは停止などの状態にあるData Pumpジョブにアクセスするために使用します。

DATA_FILTERプロシージャ


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

DETACHプロシージャ


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

GET_DUMPFILE_INFOプロシージャ


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

GET_STATUSプロシージャ


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

LOG_ENTRYプロシージャ


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

METADATA_FILTERプロシージャ


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

METADATA_REMAPプロシージャ


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

METADATA_TRANSFORMプロシージャ


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

OPENファンクション


Data Pump 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);

パラメータ

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

パラメータ 説明

handle

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

filename

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

directory

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

filesize

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

filetype

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

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

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

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


例外

使用上の注意


ATTACHファンクション

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

構文

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

パラメータ

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

パラメータ 説明

job_name

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

job_owner

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


戻り値

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

例外

使用上の注意


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);

パラメータ

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

パラメータ 説明

handle

OPENプロシージャから戻されるハンドル。

name

フィルタ名。

value

フィルタ値。

table_name

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

schema_name

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


例外

使用上の注意

表27-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句を指定すると、エクスポートで行をダンプするように命令されます。これにより、ヒープ構成表から索引構成表に移行するときのパフォーマンスが向上します。



DETACHプロシージャ

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

構文

DBMS_DATAPUMP.DETACH(
   handle  IN NUMBER);

パラメータ

表27-6 DETACHプロシージャのパラメータ

パラメータ 説明

handle

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


例外

使用上の注意


GET_DUMPFILE_INFOプロシージャ

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

構文

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

パラメータ

表27-7 GET_DUMPFILE_INFOプロシージャのパラメータ

パラメータ 説明

filename

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

directory

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

info_table

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

filetype

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


例外

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

使用上の注意

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

filetype値が1の場合は、Data Pumpダンプ・ファイルを示します。 filetype値が2の場合は、元のエクスポート・ダンプ・ファイルを示します。 いずれの場合も、ダンプ・ファイルの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;

項目コードは、必要に応じて詳細情報を提供できるように簡単に拡張できます。現在定義されている項目コードは次のとおりです(パッケージ名のDBMS_DATAPUMP.が付加されています)。

KU$_DFHDR_FILE_VERSION         CONSTANT NUMBER := 1;
KU$_DFHDR_MASTER_PRESENT       CONSTANT NUMBER := 2;
KU$_DFHDR_GUID                 CONSTANT NUMBER := 3;
KU$_DFHDR_FILE_NUMBER          CONSTANT NUMBER := 4;
KU$_DFHDR_CHARSET_ID           CONSTANT NUMBER := 5;
KU$_DFHDR_CREATION_DATE        CONSTANT NUMBER := 6;
KU$_DFHDR_FLAGS                CONSTANT NUMBER := 7;
KU$_DFHDR_JOB_NAME             CONSTANT NUMBER := 8;
KU$_DFHDR_PLATFORM             CONSTANT NUMBER := 9;
KU$_DFHDR_INSTANCE             CONSTANT NUMBER := 10;
KU$_DFHDR_LANGUAGE             CONSTANT NUMBER := 11;
KU$_DFHDR_BLOCKSIZE            CONSTANT NUMBER := 12;
KU$_DFHDR_DIRPATH              CONSTANT NUMBER := 13;
KU$_DFHDR_METADATA_COMPRESSED  CONSTANT NUMBER := 14;
KU$_DFHDR_DB_VERSION           CONSTANT NUMBER := 15;
KU$_DFHDR_MAX_ITEM_CODE        CONSTANT NUMBER := 15;

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);

パラメータ

表27-8 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になる可能性があります。


例外

使用上の注意

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

エラー処理

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

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

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


LOG_ENTRYプロシージャ

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

構文

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

パラメータ

表27-9 LOG_ENTRYプロシージャのパラメータ

パラメータ 説明

handle

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

message

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

log_file_only

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


例外

使用上の注意

このメッセージはログ・ファイルに追加されます。 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);

パラメータ

表27-10 METADATA_FILTERプロシージャのパラメータ

パラメータ 説明

handle

OPENプロシージャから戻されたハンドル。

name

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

value

フィルタ値。

object_path

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

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


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

表27-11 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パラメータはサポートされません。


例外

使用上の注意


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);

パラメータ

表27-12 METADATA_REMAPプロシージャのパラメータ

パラメータ 説明

handle

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

name

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

old_value

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

value

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

object_type

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

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


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

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

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

REMAP_SCHEMA

TEXT

スキーマ・オブジェクト

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

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

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

たとえば、SCOTTは、BLAKE'sオブジェクトはSCOTTに再マップできますが、SCOTT'sオブジェクトは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データファイルを使用するように再定義されます。


例外

使用上の注意


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);

パラメータ

表27-14 METADATA_TRANSFORMプロシージャのパラメータ

パラメータ 説明

handle

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

name

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

value

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

object_type

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

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


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

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

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

PCTSPACE

NUMBER

TABLE

INDEX

TABLESPACE

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

デフォルトは100です。

SEGMENT_ATTRIBUTES

NUMBER

TABLE、INDEX

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

デフォルトは1です。

STORAGE

NUMBER

TABLE

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

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

OID

NUMBER

TYPE

TABLE

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

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

デフォルトは1です。


例外

使用上の注意


OPENファンクション

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

構文

DBMS_DATAPUMP.OPEN (
   operation    IN VARCHAR2,
   mode         IN VARCHAR2,
   remote_link  IN VARCHAR2 DEFAULT NULL,
   job_name     IN VARCHAR2 DEFAULT NULL,
   version      IN VARCHAR2 DEFAULT 'COMPATIBLE'
   compression  IN NUMBER DEFAULT KU$_COMPRESS_METADATA)
 RETURN NUMBER;

パラメータ

表27-16 OPENファンクションのパラメータ

パラメータ 意味

operation

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

mode

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

remote_link

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

job_name

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

この名前は、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より小さくなることはありません。

compression

エクスポート・ジョブに使用する圧縮のタイプ。 サポートされる圧縮のタイプは、ku$_compress_metadata(デフォルト)およびku$_compress_noneです。


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

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

操作 説明

EXPORT

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

IMPORT

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

SQL_FILE

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


表27-18に、OPENプロシージャで有効なモードを示します。

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

モード 説明

FULL

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

SCHEMA

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

TABLE

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

TABLESPACE

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

TRANSPORTABLE

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


戻り値

例外

使用上の注意


SET_PARALLELプロシージャ

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

構文

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

パラメータ

表27-19 SET_PARALLELプロシージャのパラメータ

パラメータ 説明

handle

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

degree

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


例外

使用上の注意


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);

パラメータ

表27-20 SET_PARAMETERプロシージャのパラメータ

パラメータ 説明

handle

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

name

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

value

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


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

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

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

CLIENT_COMMAND

TEXT

すべて

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

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です。

REUSE_DATAFILES

NUMBER

インポート

0(ゼロ)以外に設定すると、表領域を作成するときに既存のデータファイルを使用して、表領域データファイルを作成できます。 REUSE_DATAFILESは、フル・モードのみでサポートされます。

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

SKIP_UNUSABLE_INDEXES

NUMBER

インポート

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

デフォルトは1です。

TABLE_EXISTS_ACTION

TEXT

インポート

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

INCLUDE_METADATA=0の場合は、TRUNCATEAPPENDのみがサポートされます。

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

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

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

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

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

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

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

TABLESPACE_DATAFILE

TEXT

インポート

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

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

TTS_FULL_CHECK

NUMBER

エクスポート

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

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

USER_METADATA

NUMBER

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

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

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

ユーザーにEXP_FULL_DATABASEロールがある場合のデフォルトは、1です。このロールがない場合のデフォルトは、0(ゼロ)です。


例外

使用上の注意


START_JOBプロシージャ

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

構文

DBMS_DATAPUMP.START_JOB (
   handle       IN NUMBER,
   skip_current IN NUMBER DEFAULT 0);

パラメータ

表27-22 START_JOBプロシージャのパラメータ

パラメータ 説明

handle

ジョブのハンドル。 現行のセッションは、OPENプロシージャまたはATTACHプロシージャのいずれかを使用して、あらかじめこのハンドルに連結しておく必要があります。

skip_current

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

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

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


例外

使用上の注意


STOP_JOBプロシージャ

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

構文

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

パラメータ

表27-23 STOP_JOBプロシージャのパラメータ

パラメータ 説明

handle

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

immediate

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

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

keep_master

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

delay

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


例外

使用上の注意


WAIT_FOR_JOBプロシージャ

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

構文

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

パラメータ

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

パラメータ 説明

handle

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

job_state

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


例外

使用上の注意

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