45 DBMS_DATAPUMP

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

参照:

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

この章のトピックは、次のとおりです:

45.1 DBMS_DATAPUMPの概要

DBMS_DATAPUMPには、次のサポートおよび機能が用意されています。

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

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

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

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

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

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

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

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

45.2 DBMS_DATAPUMPのセキュリティ・モデル

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スキーマへのアクセス権限も付与されます。

45.3 DBMS_DATAPUMPの定数

いくつかのパブリック定数が、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;

45.4 DBMS_DATAPUMPのデータ構造

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

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

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

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

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

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

バージョン固有のシノニムと汎用シノニムのどちらを使用するかにより、作業内容が大幅に異なります。バージョン固有の名前を使用すると、これらのタイプは引き続き存在しサポートされるため、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,       -- 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
        )
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 TYPE sys.ku$_WorkerStatus1120 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
                instance_id       NUMBER        -- Instance ID where running
        )
CREATE OR REPLACE PUBLIC SYNONYM ku$_WorkerStatus1120
  FOR sys.ku$_WorkerStatus1120;
CREATE TYPE sys.ku$_WorkerStatus1210 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
                instance_id       NUMBER,       -- Instance ID where running
                instance_name     VARCHAR2(60), -- Instance Name where running
                host_name         VARCHAR2(64)  -- Host name where running
        )
CREATE OR REPLACE PUBLIC SYNONYM ku$_WorkerStatus1210
  FOR sys.ku$_WorkerStatus1210;
CREATE TYPE sys.ku$_WorkerStatus1220 AS OBJECT
        (
                worker_number     NUMBER,       -- Worker process identifier
                process_name      VARCHAR2(128),-- Worker process name
                state             VARCHAR2(30), -- Worker process state
                schema            VARCHAR2(128),-- Schema name
                name              VARCHAR2(4000),-- Object name
                object_type       VARCHAR2(200),-- Object type
                partition         VARCHAR2(128),-- 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
                instance_id       NUMBER,       -- Instance ID where running
                instance_name     VARCHAR2(60), -- Instance Name where running
                host_name         VARCHAR2(101), -- Host name where running
                access_method     VARCHAR2(16), -- Access Method of object
                obj_start_time    DATE,         -- Object start  time 
                obj_status        DATE         -- Object status at current time

        )
CREATE OR REPLACE PUBLIC SYNONYM ku$_WorkerStatus1220
  FOR sys.ku$_WorkerStatus1220;
CREATE OR REPLACE PUBLIC SYNONYM ku$_WorkerStatus FOR ku$_WorkerStatus1220;

CREATE TYPE sys.ku$_WorkerStatusList1010 AS TABLE OF sys.ku$_WorkerStatus1010
CREATE TYPE sys.ku$_WorkerStatusList1020 AS TABLE OF sys.ku$_WorkerStatus1020
CREATE TYPE sys.ku$_WorkerStatusList1120 AS TABLE OF sys.ku$_WorkerStatus1120
CREATE TYPE sys.ku$_WorkerStatusList1210 AS TABLE OF sys.ku$_WorkerStatus1210
CREATE TYPE sys.ku$_WorkerStatusList1220 AS TABLE OF sys.ku$_WorkerStatus1220

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$_WorkerStatusList1120
  FOR sys.ku$_WorkerStatusList1120;
CREATE OR REPLACE PUBLIC SYNONYM ku$_WorkerStatusList1210
  FOR sys.ku$_WorkerStatusList1210;
CREATE OR REPLACE PUBLIC SYNONYM ku$_WorkerStatusList1220
  FOR sys.ku$_WorkerStatusList1220;

CREATE OR REPLACE PUBLIC SYNONYM ku$_WorkerStatusList
  FOR ku$_WorkerStatusList1220;

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

ログ・エントリ・タイプとエラー・タイプでは、連結されたクライアントとログ・ストリームに対して、情報テキストとエラー・テキストを提供します。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$_JobStatus1010 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$_WorkerStatusList1010, -- For (non-idle)
                                                        -- job worker processes
                files           ku$_DumpFileSet1010     -- Dump file info
        )
 
CREATE OR REPLACE 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, -- For (non-idle)
                                                        -- job worker processes
                files           ku$_DumpFileSet1010     -- Dump file info
        )
 
CREATE OR REPLACE PUBLIC SYNONYM ku$_JobStatus1020 FOR sys.ku$_JobStatus1020;
CREATE TYPE sys.ku$_JobStatus1120 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$_WorkerStatusList1120, -- For (non-idle)
                                                        -- job worker processes
	                files           ku$_DumpFileSet1010     -- Dump file info
        )
 
CREATE OR REPLACE PUBLIC SYNONYM ku$_JobStatus1120 FOR sys.ku$_JobStatus1120;
CREATE TYPE sys.ku$_JobStatus1210 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$_WorkerStatusList1210, -- For (non-idle)
                                                        -- job worker processes
                files           ku$_DumpFileSet1010     -- Dump file info
        )
 
CREATE OR REPLACE PUBLIC SYNONYM ku$_JobStatus1210 FOR sys.ku$_JobStatus1210;
CREATE TYPE sys.ku$_JobStatus1220 IS OBJECT
        (
                job_name        VARCHAR2(128),          -- 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
                heartbeat       NUMBER,                 -- Job heartbeat
                worker_status_list ku$_WorkerStatusList1220, -- For (non-idle)
                                                        -- job worker processes
                files           ku$_DumpFileSet1010     -- Dump file info
        )



CREATE OR REPLACE PUBLIC SYNONYM ku$_JobStatus1220 FOR sys.ku$_JobStatus1220;
CREATE OR REPLACE PUBLIC SYNONYM ku$_JobStatus FOR ku$_JobStatus1220;

ジョブ記述タイプ

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

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

CREATE TYPE sys.ku$_JobDesc1010 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
                instance        VARCHAR2(16),           -- The instance name
                db_version      VARCHAR2(30),           -- Version of objects
                creator_privs   VARCHAR2(30),           -- Privs of job
                start_time      DATE,                   -- This job start time
                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$_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),         -- Current global name
                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 TYPE sys.ku$_JobDesc1210 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),         -- Current global name
                exp_global_name VARCHAR2(4000),         -- Export global name
                instance        VARCHAR2(16),           -- The instance name
                db_version      VARCHAR2(30),           -- Cur. server software version
                exp_db_version  VARCHAR2(30),           -- Export svr. software version
                job_version     VARCHAR2(30),           -- Negotiated data 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
                timezone        VARCHAR2(64),           -- Cur. server timezone
                exp_timezone    VARCHAR2(64),           -- Exp. server timezone
                tstz_version    NUMBER,                 -- Cur. server timezone version
                exp_tstz_version NUMBER,                -- Exp. server timezone
                endianness      VARCHAR2(16),           -- Cur. platform's endianness
                exp_endianness  VARCHAR2(16),           -- Exp. platform's endianness
-- endianness is 'BIG' or 'LITTLE'
                charset         VARCHAR2(28),           -- Cur. server charset
                exp_charset     VARCHAR2(28),           -- Exp. server charset
                ncharset        VARCHAR2(28),           -- Cur. server national charset
                exp_ncharset    VARCHAR2(28),           -- Exp. server national charset
                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$_JobDesc1210 FOR sys.ku$_JobDesc1210;
CREATE TYPE sys.ku$_JobDesc1220 IS OBJECT
        (
                job_name        VARCHAR2(128),          -- 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(128),          -- Job owner
                platform        VARCHAR2(101),          -- Current job platform
                exp_platform    VARCHAR2(101),          -- Export platform
                global_name     VARCHAR2(4000),         -- Current global name
                exp_global_name VARCHAR2(4000),         -- Export global name
                instance        VARCHAR2(60),           -- The instance name
                db_version      VARCHAR2(60),           -- Cur. server software version
                exp_db_version  VARCHAR2(60),           -- Export svr. software version
                job_version     VARCHAR2(60),           -- Negotiated data 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
                timezone        VARCHAR2(64),           -- Cur. server timezone
                exp_timezone    VARCHAR2(64),           -- Exp. server timezone
                tstz_version    NUMBER,                 -- Cur. server timezone version
                exp_tstz_version NUMBER,                -- Exp. server timezone
                endianness      VARCHAR2(16),           -- Cur. platform's endianness
                exp_endianness  VARCHAR2(16),           -- Exp. platform's endianness
-- endianness is 'BIG' or 'LITTLE'
                charset         VARCHAR2(28),           -- Cur. server charset
                exp_charset     VARCHAR2(28),           -- Exp. server charset
                ncharset        VARCHAR2(28),           -- Cur. server national charset
                exp_ncharset    VARCHAR2(28),           -- Exp. server national charset
                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$_JobDesc1220 FOR sys.ku$_JobDesc1220;
CREATE OR REPLACE PUBLIC SYNONYM ku$_JobDesc FOR ku$_JobDesc1220;

ステータス・タイプ

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

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

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

CREATE TYPE sys.ku$_Status1010 IS OBJECT
        (
                mask            NUMBER,           -- Status types present
                wip             ku$_LogEntry1010, -- Work in progress
                job_description ku$_JobDesc1010,  -- Complete job description
                job_status      ku$_JobStatus1010,-- Detailed job status
                error           ku$_LogEntry1010  -- Multi-level context 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 TYPE sys.ku$_Status1120 IS OBJECT
        (
                mask            NUMBER,           -- Status types present
                wip             ku$_LogEntry1010, -- Work in progress
                job_description ku$_JobDesc1020,  -- Complete job description
                job_status      ku$_JobStatus1120,-- Detailed job status
                error           ku$_LogEntry1010  -- Multi-level context errors
        )
 
CREATE OR REPLACE PUBLIC SYNONYM ku$_Status1120 FOR sys.ku$_Status1120;
 
CREATE TYPE sys.ku$_Status1210 IS OBJECT
        (
                mask            NUMBER,           -- Status types present
                wip             ku$_LogEntry1010, -- Work in progress
                job_description ku$_JobDesc1210,  -- Complete job description
                job_status      ku$_JobStatus1210,-- Detailed job status
                error           ku$_LogEntry1010  -- Multi-level context errors
        )
 
CREATE OR REPLACE PUBLIC SYNONYM ku$_Status1210 FOR sys.ku$_Status1210;
 
CREATE TYPE sys.ku$_Status1220 IS OBJECT
        (
                mask            NUMBER,           -- Status types present
                wip             ku$_LogEntry1010, -- Work in progress
                job_description ku$_JobDesc1220,  -- Complete job description
                job_status      ku$_JobStatus1220,-- Detailed job status
                error           ku$_LogEntry1010  -- Multi-level context errors
        )

CREATE OR REPLACE PUBLIC SYNONYM ku$_Status1220 FOR sys.ku$_Status1220;

CREATE OR REPLACE PUBLIC SYNONYM ku$_Status FOR ku$_Status1220;

45.5 DBMS_DATAPUMPサブプログラムの要約

この表は、DBMS_DATAPUMPサブプログラムをアルファベット順に示し、簡単に説明しています。

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

サブプログラム 説明

ADD_FILEプロシージャ

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

ATTACHファンクション

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

DATA_FILTERプロシージャ

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

DATA_REMAPプロシージャ

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

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プロシージャ

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

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

パラメータ

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

パラメータ 説明

handle

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

filename

追加されるファイルの名前。filenameは、ディレクトリ・パス情報を持たない単純なファイル名にする必要があります。ダンプ・ファイルの場合、filenameに置換変数を含めることができます。使用可能な置換変数の詳細は、次の表を参照してください。

directory

filenameを探すために使用するデータベース内のディレクトリ・オブジェクトの名前。directoryは必ず指定する必要があります。

filesize

追加されるダンプ・ファイルのサイズ。バイト数、キロバイト数(Kを後に付ける場合)、メガバイト数(Mを後に付ける場合)、ギガバイト数(Gを後に付ける場合)、テラバイト数(Tを後に付ける場合)で指定できます。エクスポート操作では、指定したバイト数のみがファイルに書き込まれます。一杯になった時点でファイルは閉じます。指定したバイト数を書き込む領域がデバイスに不足している場合、エクスポート操作は失敗しますが、また再開できます。サイズを指定しない場合、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パラメータは、エクスポート・ジョブに限定されています。

置換変数

表45-3 DBMS_DATAPUMP.ADD_FILEのfilenameパラメータに使用できる置換変数

置換変数 説明
%U %Uは結果として得られるファイル名の中で展開され、01で始まり、2文字の固定幅で増加する整数になります。たとえばexport%Uというダンプ・ファイル名の場合は、エクスポートの実行に必要なファイル数に応じて、export01export02export03という具合にファイルが作成されます。%文字を含むファイル名の場合は、曖昧さを避けるために%%%として表現する必要があります。
%d%D グレゴリオ暦による月の現在の日付をDD形式で指定します。

ノート: この置換変数はインポート・ファイル名には使用できません。

%m%M グレゴリオ暦による月をMM形式で指定します。

ノート: この置換変数はインポート・ファイル名には使用できません。

%t%T グレゴリオ暦による年、月および日をYYYYMMDD形式で指定します。

ノート: この置換変数はインポート・ファイル名には使用できません。

%l%L システムによって生成される一意のファイル名を指定します。

ファイル名には、複数のファイルを生成できることを示す置換変数(%L)を含めることができます。生成されるファイル名では、置換変数が、01から99まで増加する固定幅の2桁の整数(%Uと同じ)に変換されます。また、生成されるファイル名では、置換変数が、100から2147483646まで増加する3桁から10桁までの可変幅の整数に変換されます。幅フィールドは、整数の桁数によって決まります。

たとえば、現在の整数が1の場合、exp%Uaa%U.dmpは次のように解決されます。
exp01aa01.dmp
exp02aa02.dmp
以降、99までは同様に続きます。その次のファイル名では3桁に置換されます。
exp100aa100.dmp
exp101aa101.dmp

以降、999まで同様に続き、その次のファイルでは4桁に置換されます。最大許容置換数(2147483646)まで、置換が続きます。

%y%Y 年をYYYY形式で指定します。

ノート: この置換変数はインポート・ファイル名には使用できません。

例外

  • 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は、エラーとなったダンプ・ファイル指定について置換変数の増加を停止します。マスター表が見つかった場合は、このマスター表を使用して、ダンプ・ファイル・セット内のすべてのダンプ・ファイルがいつ検出されたかを確認します。

45.5.2 ATTACHファンクション

このファンクションにより、以前に作成したジョブにアクセスできます。

構文

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

パラメータ

表45-4 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。指定されたジョブは存在しません。

使用上のノート

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

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

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

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

パラメータ

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

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

表45-6 データ・フィルタ

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

INCLUDE_ROWS

NUMBER

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

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

PARTITION_EXPR

PARTITION_LIST

TEXT

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

ノート:

この説明のパーティションに関する情報は、サブパーティションにも適用されます。

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

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

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

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

SAMPLE

NUMBER

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

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

SUBQUERY

TEXT

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

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

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

パラメータ

表45-7 DATA_REMAPプロシージャのパラメータ

パラメータ 説明

handle

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

name

再マップの名前。

table_name

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

column

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

remap_function

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

schema

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

例外

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

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

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

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

使用上のノート

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

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

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

ノート:

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

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

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

名前 remap_functionの意味 意味

COLUMN_FUNCTION

文字列の形式:

[schema.]package.function

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

45.5.5 DETACHプロシージャ

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

構文

DBMS_DATAPUMP.DETACH(
   handle  IN NUMBER);

パラメータ

表45-9 DETACHプロシージャのパラメータ

パラメータ 説明

handle

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

例外

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

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

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

使用上のノート

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

45.5.6 GET_DUMPFILE_INFOプロシージャ

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

構文

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

パラメータ

表45-10 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;
 

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

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

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

表45-11 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)以降でのみ使用可能です。

KU$_DFHDR_COMPRESSION_ALG

システム・メタデータまたは表データ(あるいはその両方)を、圧縮形式でダンプ・ファイルに書き込むときに使用される圧縮アルゴリズム。この項目コードの戻り値は、次のとおりです。

  • KU$_DFHDR_CMPALG_NONE

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

  • KU$_DFHDR_CMPALG_BASIC

    内部アルゴリズムを使用して、データが圧縮形式でダンプ・ファイルに書き込まれました。これは、Oracle Database 10gリリース2(10.2)以降に使用されているデフォルトのアルゴリズムです。

  • KU$_DFHDR_CMPALG_LOW

    LOWアルゴリズムを使用して、データが圧縮形式でダンプ・ファイルに書き込まれました。

  • KU$_DFHDR_CMPALG_MEDIUM

    MEDIUMアルゴリズムを使用して、データが圧縮形式でダンプ・ファイルに書き込まれました。

  • KU$_DFHDR_CMPALG_HIGH

    HIGHアルゴリズムを使用して、データが圧縮形式でダンプ・ファイルに書き込まれました。

Oracle Database 12cリリース1(12.1)以降でのみ使用可能です。

45.5.7 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$_Status);

パラメータ

表45-12 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情報が要求されたが、タイムアウト期間が終了した場合は、何も戻されない可能性があります。

例外

  • 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の計算には考慮されません。

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

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

45.5.8 LOG_ENTRYプロシージャ

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

構文

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

パラメータ

表45-13 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からログ・ストリームに入力された行には、;;;という接頭辞が付きます。

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

パラメータ

表45-14 METADATA_FILTERプロシージャのパラメータ

パラメータ 説明

handle

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

name

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

value

フィルタ値。

object_path

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

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

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

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

EXCLUDE_TABLES

TABLE_EXPORT

表がエクスポートされないことを指定します。

VIEWS_AS_TABLES

TABLE_EXPORT

表としてエクスポートされる、次のような形式のカンマ区切りのビュー・リストです。

[schema_name.]view_name[:table_name]

このフィルタは、複数の値を追加するときに、あるいはリストに値を追加するたびに何回でも呼び出せます。リスト内のすべてのビューは、表としてエクスポートされます。

例外

  • 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以外のすべての表が含まれるファイル・セットが作成されます。

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

パラメータ

表45-16 METADATA_REMAPプロシージャのパラメータ

パラメータ 説明

handle

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

name

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

old_value

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

value

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

object_type

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

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

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

表45-17 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

old_valuevalueが両方とも完全なファイル指定である場合は、object_typeパラメータに一致し、old_valueデータファイルを参照していたジョブ内のすべてのデータファイル参照は、valueデータファイルを使用するように再定義されます。old_valuevalueが両方ともディレクトリ・パスである場合は、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つの再マップを指定することはできません。

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

パラメータ

表45-18 METADATA_TRANSFORMプロシージャのパラメータ

パラメータ 説明

handle

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

name

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

value

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

object_type

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

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

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

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

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

DISABLE_ARCHIVE_LOGGING

NUMBER

TABLE

INDEX

インポート時に、指定されたオブジェクト・タイプのアーカイブ・ログを無効にするかどうかを指定します。

ゼロ(FALSE)の値がデフォルトです。アーカイブ・ログの実行が指定されます。この変換パラメータが指定されていない場合、これがデフォルトの動作になります。

ゼロ以外(TRUE)の値を指定すると、インポート操作中にデータをロードする前に、指定されたオブジェクト・タイプのアーカイブ・ログが無効になります。オブジェクト・タイプが指定されていない場合は、TABLEとINDEXの両方のオブジェクト・タイプに対してアーカイブ・ログが無効になります。データ・ポンプ・インポート時に処理されるその他のオブジェクト・タイプのロギングは行われます。

ノート: データベースがFORCE LOGGINGモードの場合、索引および表が作成されると、DISABLE_ARCHIVE_LOGGING変換のためにロギングが無効になりません。

INMEMORY

NUMBER

TABLE

TABLESPACE

MATERIALIZED VIEWS

INMEMORY変換は、インメモリー列ストア(IM列ストア)と関係があります。これは、表全体、表パーティションおよび個々の列を圧縮列形式で格納するSGAのオプションの領域です。

インポートでゼロ以外の値(TRUE)を指定した場合、データ・ポンプでは、これらのオブジェクトのエクスポート時のIM設定を保持するIM句が生成されます。これはデフォルトです。

インポートでゼロの値(FALSE)を指定した場合、データ・ポンプでは、どのオブジェクトに対してもIM句を含めません。

ノート: INMEMORY変換は、Oracle Database 12cリリース1(12.1.0.2)以降でのみ使用可能です。

INMEMORY_CLAUSE

TEXT

TABLE

TABLESPACE

MATERIALIZED VIEWS

INMEMORY_CLAUSE変換は、インメモリー列ストア(IM列ストア)と関係があります。これは、表全体、表パーティションおよび個々の列を圧縮列形式で格納するSGAのオプションの領域です。

この変換を指定した場合、データ・ポンプでは、DDLにIM句を含む、インポート対象のすべてのオブジェクトに対して、文字列の内容をIM句として使用します。この変換は、ダンプ・ファイルのオブジェクトのIM句を優先する必要がある場合に有効です。

ノート: INMEMORY_CLAUSE変換は、Oracle Database 12cリリース1(12.1.0.2)以降でのみ使用可能です。

LOB_STORAGE

TEXT

TABLE

LOBセグメント用の記憶域タイプを指定します。オプションは、次のとおりです。

  • SECUREFILE: LOB記憶域がSECUREFILEとして戻されます。

  • BASICFILE: LOB記憶域がBASICFILEとして戻されます。

  • DEFAULT: LOB STORE AS句で、キーワード(SECUREFILEまたはBASICFILE)が省略されます。

  • NO_CHANGE: LOBセグメントがソース・データベースと同様の記憶域環境で作成されます。これはデフォルトです。

この変換を指定すると、マテリアライズド・ビューを格納する表を含む、ジョブ内のすべての表のLOB記憶域が変更されます。

OID

NUMBER

TYPE

TABLE

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

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

デフォルトは1です。

PCTSPACE

NUMBER

TABLE

INDEX

TABLESPACE

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

デフォルトは100です。

SEGMENT_ATTRIBUTES

NUMBER

TABLE、INDEX

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

デフォルトは1です。

SEGMENT_CREATION

NUMBER

TABLE

0(ゼロ)以外(TRUE)の場合、CREATE TABLE文にSQL SEGMENT CREATION句が追加されます。つまり、CREATE TABLE文でSEGMENT CREATION DEFERREDSEGMENT CREATION IMMEDIATEのいずれかが明示的に表現されます。

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

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

STORAGE

NUMBER

TABLE

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

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

TABLE_COMPRESSION_CLAUSE

TEXT

TABLE

表の作成時に使用する表の圧縮句(COMPRESS BASICなど)を指定します。

表の圧縮句を省略する場合は、NONEを指定します。表には、表領域に対するデフォルトの圧縮が適用されます。

この変換を指定すると、マテリアライズド・ビューを格納する表を含む、ジョブ内のすべての表の圧縮タイプが変更されます。

例外

  • 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つの変換を指定することはできません。

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

パラメータ

表45-20 OPENファンクションのパラメータ

パラメータ 意味

operation

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

job_mode

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

remote_link

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

job_name

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

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

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

version

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

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

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

  • '11.0.0'など特定のデータベース・バージョン。

    Oracle Database 11gリリース2 (11.2.0.3)以降からOracle Database 12 cリリース1 (12.1) (マルチテナント・コンテナ・データベース(CDB)またはCDBでないデータベースのいずれか)に、すべての既存のデータベース機能、コンポーネントおよびオプションをエクスポートできるように値に12を指定します。

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

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

操作 説明

EXPORT

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

IMPORT

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

SQL_FILE

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

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

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

モード 説明

FULL

Oracle Databaseの内部スキーマを除く、全データベースまたは全ダンプ・ファイル・セットで動作します。(Oracle Databaseの内部スキーマ内にある一部の表は、インポート時のメタデータの一貫性を保つために、エクスポートとインポートの全動作の対象として登録されている場合があります。)

全データベースのエクスポート時には、TRANSPORTABLEパラメータをALWAYSに設定して、データ・ポンプ・ダンプ・ファイルではなく、トランスポータブル表領域でデータが移動されるようにすることができます。

SCHEMA

選択された一連のスキーマで動作します。デフォルトは現行のユーザーのスキーマです。選択されたスキーマ内のすべてのオブジェクトが処理されます。SCHEMAモードでは、Oracleの内部スキーマ(SYSXDBORDSYSMDSYSCTXSYSORDPLUGINSLBACSYSなど)を指定できません。

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ハンドルを使ってコールすると、この失敗に関する詳細を参照できます。

45.5.13 SET_PARALLELプロシージャ

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

構文

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

パラメータ

表45-23 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度で動作します。

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

パラメータ

表45-24 SET_PARAMETERプロシージャのパラメータ

パラメータ 説明

handle

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

name

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

value

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

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

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

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

CLIENT_COMMAND

TEXT

すべて

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

COMPRESSION

TEXT

エクスポート

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

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

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

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

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

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

デフォルトはMETADATA_ONLYです。

COMPRESSION_ALGORITHM

TEXT

エクスポート

ダンプ・ファイル・データを圧縮する際に使用する圧縮アルゴリズムを示します。選択肢は次のようになります。

  • BASIC: 圧縮率と速度の適度な組合せが実現し、使用されるアルゴリズムはOracle Data Pumpの以前のバージョンと同じです。

  • LOW: バックアップ・スループットへの影響を最小限に抑えます。CPUリソースが限定要因となっている環境に適しています。

  • MEDIUM: ほとんどの環境に適しています。このオプションはBASICオプションと同様、圧縮率と処理速度を加味したよい組合せですが、BASICとは異なるアルゴリズムが使用されています。

  • HIGH: ネットワーク速度が限定要因となっている、速度が遅いネットワークを使用するエクスポートに最適です。

この機能を使用するには、COMPATIBLE初期化パラメータを12.0.0以上に設定する必要があります。

この機能では、Oracle Advanced Compressionオプションを有効にする必要があります。

DATA_ACCESS_METHOD

TEXT

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

デフォルトのメソッドがなんらかの理由で動作しない場合に、データのアンロードの別のメソッドを指定できます。選択肢はAUTOMATICDIRECT_PATHまたはEXTERNAL_TABLEです。できるだけデフォルトのオプション(AUTOMATIC)を使用することをお薦めします(このオプションによって、データ・ポンプは最も効果的なメソッドを自動的に選択できるようになります)。

DATA_OPTIONS

数値

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

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

  • KU$_DATAOPT_SKIP_CONST_ERR

  • KU$_DATAOPT_XMLTYPE_CLOB

  • KU$_DATAOPT_DISABL_APPEND_HINT

    KU$_DATAOPT_GRP_PART_TAB

  • KU$_DATAOPT_TRUST_EXIST_TB_PAR

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

ノート: Oracle Database 12cリリース1(12.1)から、CLOBとして保存されたXMLTypeは非推奨になっています。

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

インポートでは、KU$_DATAOPT_DISABL_APPEND_HINT値もサポートされています。このオプションにより、APPENDヒントがデータ・ロードに適用されません。ロードするデータ・オブジェクトの一部がすでにデータベースに存在し、1つ以上のデータ・オブジェクトに対して他のアプリケーションから同時にアクセスされる可能性がある場合は、APPENDヒントを無効にしたほうが効果的な場合があります。

データ・ポンプ・エクスポートでは、KU$_DATAOPT_GRP_PART_TAB値がサポートされています。このオプションは、各表パーティションを別々の操作としてアンロードするのではなく、1つの操作ですべての表データをアンロードするように、データ・ポンプに指示します。その結果、インポート時に表の定義は考慮されません(インポートでは表全体にロードされる1つのデータ・パーティションが参照されるため)。

データ・ポンプ・インポートでは、KU$_DATAOPT_TRUST_EXIST_TB_PAR値がサポートされています。このオプションは、パーティション・データをロードするようにデータ・ポンプに指示します

(既存の表にパラレルで)。

DATA_OPTIONSパラメータを使用するには、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

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

エクスポート操作では、ENCRYPTION_MODEPASSWORDまたはDUALのいずれかに設定した場合に、このパラメータが必要になります。これは、暗号化された表領域あるいは暗号化された列のある表のいずれかがデータベースに含まれている場合、トランスポータブル・エクスポートまたはインポート操作(job mode=FULLおよびTRANSPORTABLE=ALWAYS)にも必要です。

ESTIMATE

TEXT

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

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

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

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

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

デフォルトはBLOCKSです。

ESTIMATE_ONLY

NUMBER

エクスポート

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

FLASHBACK_SCN

NUMBER

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

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

FLASHBACK_SCNは、Oracle Database 12cリリース2 (12.2)で使用される新しい8バイトの大きいSCNがサポートされています。

FLASHBACK_TIME

TEXT

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

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

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

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

INCLUDE_METADATA

NUMBER

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

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

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

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

デフォルト=1

KEEP_MASTER

NUMBER

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

正常に完了したデータ・ポンプ・ジョブの最後に、マスター表を削除するか、または保持するかを指定します。ジョブが正常に完了しなかった場合、マスター表は自動的に保持されます。

デフォルト=0。

LOGTIME

TEXT

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

エクスポート操作中およびインポート操作中に表示されるメッセージに、タイムスタンプを設定するように指定します。有効なオプションは次のとおりです。

  • NONE: ステータス・メッセージまたはログ・ファイル・メッセージにタイムスタンプを表示しません(デフォルト)。

  • STATUS: ステータス・メッセージにのみタイムスタンプを付けます。

  • LOGFILE: ログ・ファイル・メッセージにのみタイムスタンプを付けます。

  • ALL: ステータス・メッセージとログ・ファイル・メッセージの両方にタイムスタンプを付けます。

MASTER_ONLY

NUMBER

インポート

マスター表の内容を確認できるように、マスター表のみをインポートしてジョブを停止するかどうかを示します。

デフォルト=0。

METRICS

NUMBER

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

ジョブに関する詳細情報をデータ・ポンプ・ログ・ファイルに記録するかどうかを示します。

デフォルト=0。

PARTITION_OPTIONS

TEXT

インポート

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

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

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

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

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

デフォルトはNONEです。

REUSE_DATAFILES

NUMBER

インポート

インポート・ジョブで、表領域の作成に既存のデータ・ファイルを再利用するかどうかを指定します。

デフォルト=0。

SKIP_UNUSABLE_INDEXES

NUMBER

インポート

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

デフォルト=1

SOURCE_EDITION

TEXT

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

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

STREAMS_CONFIGURATION

NUMBER

インポート

エクスポート・ダンプ・ファイル内に存在するStreamsメタデータをインポートするかどうかを指定します。

デフォルト=1。

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以上のジョブ・バージョンが必要です。

ジョブ・モードがFULLの場合、このパラメータには、12.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プロシージャは、現行のジョブにオプション機能を指定するために使用します。サポートされるオプションのリストについては、表45-25を参照してください。

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

パラメータ

表45-26 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ファンクションを実行する必要があります。

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

パラメータ

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

45.5.17 WAIT_FOR_JOBプロシージャ

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

構文

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

パラメータ

表45-28 WAIT_FOR_JOBプロシージャのパラメータ

パラメータ 説明

handle

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

job_state

実行を停止したときのジョブの状態(STOPPEDまたはCOMPLETEDのどちらか)。

例外

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

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

使用上のノート

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