dポイントプレゼントキャンペーン実施中!

以前、MySQLでのマージ方法について質問した者です。

今度は、Oracleでのマージ方法ですが、
重複行が発生して困っております。

状況としては、スキーマが二つあります。db1とdb2です。

それぞれ、同じ構造のテーブルを持っていて、格納しているデータだけが違います。

db1にdb2をマージしようとしているのですが、上手くいきません。(重複行が発生します)

方法として、以下の2パターンを試行しました。

(1)インポート
   db1をインポートした後に、同じスキーマにdb2からのダンプファイルでインポート  

(2)ダイレクトパスインサート
   insert/*+ APPEND */ into db1.myTable (SELECT * FROM db2,myTable);.

以下は当方の使用環境です。
Windows7 Pro 64Bit
Oracle11g Standard Edition

他に必要な情報があればお聞かせください。


よろしくお願いします。

A 回答 (1件)

>(1)インポート


についてですが、
impdpを使うなら、CONTENT=DATA_ONLY DATA_OPTIONS=SKIP_CONSTRAINT_ERRORS
impなら、IGNORE=Y
のパラメータを設定することで、うまくいくのではないでしょうか。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。

impのIGNORE=Yは、テーブル単位の重複、つまりcreate tableしようとしたら、既にテーブルがあった場合のエラーを無視する、ということのようです。

impdpは、そういう機能をはじめて知ったので、今試行しています。結果は週明けにご報告いたします。

お礼日時:2012/11/30 18:01

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!