- ベストアンサー
Oracleで上書きImportはできますか?
DBサーバーA(以下A)のデータを毎月Exportし、DBサーバーB(以下B)にImportしていきます。 二回目以降は先月のImportでBにはAと同じテーブル定義がされています。 二回目以降にBの定義(データも含め)を削除せずにAのデータを追加及び上書きしたいのですが増分Expなどで出来るのでしょうか? Oracleのバージョンは8.0.5.2.1です。 宜しくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
importとSQLだけでできる方法です 1.サーバBのテーブル名を変更(たとえばTEMP_TABLE)する 2.サーバAの内容をサーバBにimportする 3.TEMP_TABLEの内容のうち、importした内容とキー重複となるレコードを相関副問い合わせのDELETE文で削除する。 4.TEMP_TABLEの内容をimportしたテーブルにinsertする 5.TEMP_TABLEをdropする 削除でロールバックセグメントがパンクしない量であればお勧めです。
その他の回答 (1)
- kntr1
- ベストアンサー率39% (13/33)
回答No.1
まずAでselectの項目に日付で範囲内のデータを抽出します。 抽出を掛けたデータを、Bにimportすれば大丈夫だと思います。 但し、その際のツールは作成しなければならないと思います。
質問者
補足
kntr1さん、回答有難うございます。 B(情報系:更新無し)にあるデータがA(業務系:更新有り)で変更されており、変更された内容でBを更新したいのですが、PL/SQL等でやるのは時間がかかるのでExp/Impで出来ないかという事なのですが・・・ 宜しくお願いします。
お礼
taka_tetsuさん、回答ありがとうございます。 内容的にはかなりGoodです。 ロールバックセグメントの心配はありますが参考にさせて頂きます。
補足
やっぱりPL/SQLでガリガリやるしかないですかね。 例えばOracleから別のツール(Access、ファイルメーカ)等に落として 戻すとか出来たりしませんか? ご存知の方、宜しくお願いします。