• ベストアンサー

Oracleで上書きImportはできますか?

DBサーバーA(以下A)のデータを毎月Exportし、DBサーバーB(以下B)にImportしていきます。 二回目以降は先月のImportでBにはAと同じテーブル定義がされています。 二回目以降にBの定義(データも含め)を削除せずにAのデータを追加及び上書きしたいのですが増分Expなどで出来るのでしょうか? Oracleのバージョンは8.0.5.2.1です。 宜しくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • taka_tetsu
  • ベストアンサー率65% (1020/1553)
回答No.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する 削除でロールバックセグメントがパンクしない量であればお勧めです。

ken-mm
質問者

お礼

taka_tetsuさん、回答ありがとうございます。 内容的にはかなりGoodです。 ロールバックセグメントの心配はありますが参考にさせて頂きます。

ken-mm
質問者

補足

やっぱりPL/SQLでガリガリやるしかないですかね。 例えばOracleから別のツール(Access、ファイルメーカ)等に落として 戻すとか出来たりしませんか? ご存知の方、宜しくお願いします。

その他の回答 (1)

  • kntr1
  • ベストアンサー率39% (13/33)
回答No.1

まずAでselectの項目に日付で範囲内のデータを抽出します。 抽出を掛けたデータを、Bにimportすれば大丈夫だと思います。 但し、その際のツールは作成しなければならないと思います。

ken-mm
質問者

補足

kntr1さん、回答有難うございます。 B(情報系:更新無し)にあるデータがA(業務系:更新有り)で変更されており、変更された内容でBを更新したいのですが、PL/SQL等でやるのは時間がかかるのでExp/Impで出来ないかという事なのですが・・・ 宜しくお願いします。

関連するQ&A

  • Oracleのエクスポート、インポートについて困っています・・・

    Oracleのエクスポート、インポートについて詳しい方にお伺いしたいのですが。 質問の内容と、スペックですが、 エクスポートの対象にしているOSがlinuxで、DBがOracleです。このサーバーは私のローカル内にありません。 インポートしたいデモ環境(OSがlinuxで、DBがOracle)が、私のローカル内にあります。二つとも別場所です。 お分かりのとおり、この対象OSのOracle内のデータとデモ環境(OSがlinuxで、DBがOracle)のOracle内のデータを 同じようにしようとしております。 私のOSはwindowsXPで、Oracleはインストールしておりません。 これが痛くてフリーソフトをあれこれ使おうとすると、SQL*Net(有料?あまりよくわからない)が必要なことを知ってより困っています。 この私の環境(OSはwindowsXPで、Oracleはインストールしていない)で 別場所のOracleからエクスポートし、自分のローカル内にあるデモ環境(OSがlinuxで、DBがOracle)のOracleに インポートできるフリーソフトってあるのでしょうか。 別場所であろうが、自分のローカル内だけであろうが、 エクスポートだけしかできないフリーソフトでもほしいです。 ないとは思いますが(結構、調べたので)、もし、ご存知のかたがいれば教えていただけないですか。 あと、実際、上記のような質問をしていますが、やはり、この件に関しては、 コマンドプロンプトを開いてimp/expをするのがよいのでしょうか。 できるだけ、シンプルな方法をつかみたい次第です。 もし、コマンドからの操作しかないのでしたら、 imp/expにおいて気をつけなければいけないこと等はあるのでしょうか。 expはDBに危険がないような気がするのですが、impはなにかと気をつけないといけなさそうな気がしますが・・・。 初心者すぎる質問で見苦しく恐縮です。 OracleのSQL文もよく知らないもので。 できれば詳しい方、よろしくお願いします。

  • Oracleインポート

    Oracle9iでエクスポートしたファイルをインポートしていますが、順序(Sequence)が元にもどりません。エクスポート前が10だとするとインポートしたときには、create sequenceを行った後の状態になっています。これをどうにか、インポート後は10にしたいのですがどうすればよろしいのでしょうか。エクスポート、インポートの権限としてDBAやEXP_FULL_DATABASE,IMP_FULL_DATABASEを与えています。

  • オラクル DMPデータのインポートについて

    オラクルDB(R8.1.7)でエクスポートしたDMPデータを(10.2G)にインポートができるかを まず教えていただけませんでしょうか。 可能であれば 注意点等お聞かせ頂けると助かります。

  • テーブルのエクスポート・インポート

    SQL Server2005 を使用しています。 テーブルのインポート・エクスポートに関して質問があります。 今まで、Oracleを主に使用していて、「EXP」「IMP」コマンドを使用して DMPファイルを介して別PCのデータベース間でテーブルのやり取りをしていました。(DB上のテーブルすべてや特定のテーブルのみなど) 同様のことをSQL Serverで実現したく下記を試したのですが上手くいきません。 1.Management Studio で「タスク」→「データのインポート(エクスポート)」   フラットファイル、Excel、MDBファイルなど試したのですが、   これらの中間ファイルを介した際にデータ型が変わってしまい   元の型のまま戻せない。   Oracleの「DMP」ファイルのようなものには落とせないのでしょうか? 2.「bcp」コマンド   これに関しては、複雑でよくわかりませんでした。   もし、このコマンドで実現可能であれば、やり方を教えて下さると   助かります。 以上、ながなが書きましたが宜しくお願い致します。

  • オラクルのインポートについて

    はじめまして。 12時前に質問したのですが、私の質問がWebから 見えないので、心配になってもう一度登録しています。 質問ですが、オラクルのDBサーバー移行作業を 3日前から進めているのですが、テーブルの インポートが出来なくて困っています。 インポート時のエラーは以下の通りです。 --------------------------------------------- C:\Temp>imp user/user@test file=C:\Temp\imp.dat log=C:\Temp\TBCIXBA.imp tables=tablename Import: Release 9.2.0.1.0 - Production on 金 Jun 18 11:43:46 2004 Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved. 接続先: Oracle9i Release 9.2.0.1.0 - Production JServer Release 9.2.0.1.0 - Production エクスポート・ファイルはEXPORT:V09.02.00によって従来型パス経由で作成されました IMP-00013: DBAのみ別のDBAがエクスポートしたファイルをインポートできます。 IMP-00000: エラーが発生したためインポートを終了します。 --------------------------------------------- お忙しいところすいませんが、手を貸して下さい。 失礼します。

  • oracleについて

    oracle(11.1.0.7)でエクスポートしたdata pumpファイルを oracle(11.1.0.6)にインポートしようとしたら、インポートエラーのため、 全く入りませんでした。 oracle(11.1.0.6)に問題があるのでしょうか。 知っている方教えていただけませんでしょうか。よろしくお願いします。

  • oracle ダンプファイルのサイズとインポート先の表領域の使用サイズ

    oracle ダンプファイルのサイズとインポート先の表領域の使用サイズの関係 あるダンプファイル(2.5GB)をオラクルDBへimportしたら、 そのDBの表領域が10GBほど使用されました。 2.5GBのものをimportしたのに、なぜここまで表領域を消費するのでしょうか? (これまでこのようなことはありませんでした。) 表領域の使用サイズをもっと少なくするにはどうすればよいのでしょうか? エクスポート時のコマンド exp aaaa/aaaa file=bbbb.dmp log=exp_cccc.log consistent=y インポート時のコマンド imp aaaa/aaaa file=bbbb.dmp log=imp_cccc.log エクスポート時に「compress=n」をつけたり、 インポート時に「ignore=y」をつけたりしたのですが、 とくに変化はありませんでした。

  • インポートできない。

    あるテーブルのデータをダンプしてエクスポート(export_utf8.sql)しました。 それを他のMysqlへインポートしようと以下のコマンドを実行したところ、 mysql -p --default-character-set=utf8 db < export_utf8.sql 以下のエラーが出力されました。 Unknown MySQL server host 'border="1"' (1) おそらく、エスケープ関連でコケているものかと思いますが、 どうすればインポートできるのかわかりません。 ご存知の方、宜しくお願いします。

    • ベストアンサー
    • MySQL
  • ORACLE Storage Managerのインポート方法

    - 今、UNIX上のORACLEからエクスポートしたDBを、NT上のORACLEにインポートを 行おうと思っているのですが、上手くいかずに困っています。 最初は、DOSよりimpを行ったのですが、charsetが合わずに失敗。 環境設定で、NLS_LANGの値を変更したりもしたのですが、成功しませんでした。 次に、Storage Managerでインポートを試みたのですが、下記のエラーであえなく 失敗。。。。。  (T。T;) 「OracleManagermentServerに接続している場合だけウィザードを起動できます。」 どなたか、同じようにUNIXからNT上のORACLEにデータを移行したことのあるかた。 どうか、どうか、アドバイスをお願い致します。 -

  • 特定ユーザーのデータインポート時にフリーズ

    はじめまして。 このたび、サーバー機のリプレイスに伴いexp/impを使ってユーザーデータの移行を行っていますが、 その際にトラブルが発生いたしました。 ■移行元サーバー (NEC製) Windows 2000 Server Oracle 8i ■移行先サーバー (IBM製) Windows Server 2003 R2 SP2 Oracle 9i (9.2.0.2) A,B,C(実際の名前ではありません)という3ユーザーのデータをユーザーモードでエクスポートし、 エクスポートは正常終了しました。 しかし、移行先のサーバーでインポートをしたところ、A,Bは正常にインポートできましたが、Cの インポートの際に、特定のテーブルでインポートが停止し、そのままOSがフリーズしてしまいます。 フリーズしたOSは何もできない状態で、Windowsの通常起動もできずセーフモードで立ち上げるしか できません。セーフモードで、OracleServiceDB(※ここでSIDをDBと仮定させていただきます)を サービス設定から、自動起動しない設定にすれば、OSは通常起動でき操作も問題ありません。 Cのユーザーデータをインポートすると、OracleServiceDB がおかしくなり、これが開始状態だと OSがフリーズしてしまいます。何もできず、タスクマネージャも起動しません。キーボードも反応しません。 ※電源を直接切る以外シャットダウン不可能です 当初は、エクスポートしたCユーザーのダンプファイルの問題かと思いましたが、問題のダンプファイルを、 HP製のWindows Server 2003 R2 SP2 ・ Oracle 9i (9.2.0.2) にインポートすると正常にインポートが 可能でした。そのため、ダンプファイルの問題とも考えにくく、ハードウェアの相違が影響しているのでは ないかと考えられなくもない状態ですが、どうも原因が分かりません。 同様のトラブルを経験された方や、何かしらの対処法をご存知の方がいらっしゃいましたら、アドバイスいた だければ助かります。