コメント |
@DIV
実際問題環境の移動はこの方法が最も一般的ですが、Oracle を良く知っていないとなかなかうまく
行かなかったりしますのであまりおすすめではありませんが、テーブル単位ならば
もし失敗しても被害が少ないので知っておいてもいいと思います。
@END
[[imp.par]]
@DIV
DIRECTORY=MYDIR
DUMPFILE=ORA01.dmp
TRANSFORM=SEGMENT_ATTRIBUTES:n
REMAP_SCHEMA=ORA01:JET
TABLES=社員マスタ,商品マスタ
TABLE_EXISTS_ACTION=REPLACE
@END
※ ORA01 でエクスポートされたテーブルを JET というスキーマ環境に作成します
このパラメータファイルは、テーブルを常に置き換えるので、テストで書き換えられた
テーブルをリセットするのに使うと良いと思います。
@C:red(注意) この処理は SYSTEM ユーザで行って下さい。
もし SYSTEM ユーザが使え無いのであれば、この方法以外を考えたほうが良いと思います。
@DIV
impdp system/manager@//night/XE PARFILE=imp.par
@END
TABLE_EXISTS_ACTION には他にも以下のようなものがあります
@DIV
SKIP: 表はそのままにして、次のオブジェクトに移動します。
(CONTENTパラメータがDATA_ONLYに設定されている場合、このオプションは無効です。)
APPEND: ソースから行をロードし、既存の行は変更しません。
TRUNCATE: 既存の行を削除した後、ソースから行をロードします。
@END
ちなみに、以下の PARFILE で CREATE 文を出力すると、スキーマ名が JET になっています
@DIV
DIRECTORY=MYDIR
DUMPFILE=ORA01.dmp
TRANSFORM=SEGMENT_ATTRIBUTES:n
REMAP_SCHEMA=ORA01:JET
TABLES=社員マスタ,商品マスタ
SQLFILE=MYDIR:ddl.txt
@END
@DIV
-- CONNECT SYSTEM
-- new object type path is: SCHEMA_EXPORT/TABLE/TABLE
CREATE TABLE "JET"."商品マスタ"
( "商品コード" VARCHAR2(4),
"商品名" VARCHAR2(75),
"在庫評価単価" NUMBER,
"販売単価" NUMBER,
"商品分類" VARCHAR2(3),
"商品区分" VARCHAR2(1),
"作成日" DATE,
"更新日" DATE,
"備考" VARCHAR2(2000),
"削除フラグ" VARCHAR2(1)
) ;
CREATE TABLE "JET"."社員マスタ"
( "社員コード" VARCHAR2(4),
"氏名" VARCHAR2(50),
"フリガナ" VARCHAR2(50),
"所属" VARCHAR2(4),
"性別" NUMBER(1,0),
"作成日" DATE,
"更新日" DATE,
"給与" VARCHAR2(255),
"手当" VARCHAR2(255),
"管理者" VARCHAR2(4),
"生年月日" DATE
) ;
-- new object type path is: SCHEMA_EXPORT/TABLE/CONSTRAINT/CONSTRAINT
ALTER TABLE "JET"."商品マスタ" ADD PRIMARY KEY ("商品コード") ENABLE;
ALTER TABLE "JET"."社員マスタ" ADD PRIMARY KEY ("社員コード") ENABLE;
@END
http://otndnld.oracle.co.jp/document/products/oracle10g/102/doc_cd/server.102/B19211-01/dp_import.html(Data Pump Import) |