ソース掲示板




すべてから検索

キーワード   条件 表示 現行ログ 過去ログ トピックス 名前 本文
ダンプファイルから、別スキーマへテーブルコピー ( No.14 )
日時: 2008/07/23 17:01
名前: lightbox



実際問題環境の移動はこの方法が最も一般的ですが、Oracle を良く知っていないとなかなかうまく
行かなかったりしますのであまりおすすめではありませんが、テーブル単位ならば
もし失敗しても被害が少ないので知っておいてもいいと思います。
imp.par
DIRECTORY=MYDIR
DUMPFILE=ORA01.dmp
TRANSFORM=SEGMENT_ATTRIBUTES:n
REMAP_SCHEMA=ORA01:JET
TABLES=社員マスタ,商品マスタ
TABLE_EXISTS_ACTION=REPLACE
※ ORA01 でエクスポートされたテーブルを JET というスキーマ環境に作成します このパラメータファイルは、テーブルを常に置き換えるので、テストで書き換えられた テーブルをリセットするのに使うと良いと思います。 注意 この処理は SYSTEM ユーザで行って下さい。 もし SYSTEM ユーザが使え無いのであれば、この方法以外を考えたほうが良いと思います。
impdp system/manager@//night/XE PARFILE=imp.par
TABLE_EXISTS_ACTION には他にも以下のようなものがあります
SKIP: 表はそのままにして、次のオブジェクトに移動します。
(CONTENTパラメータがDATA_ONLYに設定されている場合、このオプションは無効です。)

APPEND: ソースから行をロードし、既存の行は変更しません。

TRUNCATE: 既存の行を削除した後、ソースから行をロードします。
ちなみに、以下の PARFILE で CREATE 文を出力すると、スキーマ名が JET になっています
DIRECTORY=MYDIR
DUMPFILE=ORA01.dmp
TRANSFORM=SEGMENT_ATTRIBUTES:n
REMAP_SCHEMA=ORA01:JET
TABLES=社員マスタ,商品マスタ
SQLFILE=MYDIR:ddl.txt
-- 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;
Data Pump Import