• ベストアンサー
  • すぐに回答を!

importについて

こんばんは。 exportしたダンプファイルを頂いたので oracleにimportしようと思っています。 色々調べて以下のようにわかったのですが、 間違っていないか、パラメータで追加した方が よいものがあれば、ご指摘お願いします。 1) 既に同じ内容のテーブルが存在するが、それは気にせずimportを行う。既存のテーブルデータは新しくimportするもので更新されている??? 2) SQL*PLUSでコマンドを叩く。 コマンド内容は以下の通り。 imp system/manager fromuser=test1 touser=test2 file=db_data.dmp log=implog.log test1 ← DBA権限あり。 test2 ← このユーザーの表領域にデータを作成したい。

共感・応援の気持ちを伝えよう!

  • Oracle
  • 回答数3
  • 閲覧数5421
  • ありがとう数4

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

  • ベストアンサー
  • 回答No.3

>上記オプションで、既存のテーブルは古いデータが削除され、 ignore=yにしてもimpコマンドではデータの削除は行われません。 一意制約違反となります。 あらかじめ不要なデータは消しておきましょう。 truncate table テーブル名; でデータを切り捨てるのがいいかと。 >新規に増えたテーブルは >新規に作成(データ込み)と考えて正しいでしょうか? はい。こちらはこうです。

共感・感謝の気持ちを伝えよう!

質問者からのお礼

お返事が遅くなってすいません。 アドバイス頂いたおかげで、成功しました。 ありがとうございました。

その他の回答 (2)

  • 回答No.2

>1) >既に同じ内容のテーブルが存在するが、それは気にせずimportを行う。 >既存のテーブルデータは新しくimportするもので更新されている??? 一意制約違反でエラーとなるでしょう。 あらかじめテーブルをdropしてあった場合は、インポート時にcreateされますが、レイアウトが違う場合は注意が必要です。 >2) >SQL*PLUSでコマンドを叩く。 >コマンド内容は以下の通り。 >imp system/manager fromuser=test1 touser=test2 file=db_data.dmp log=implog.log impはSQL*Plusのコマンドではありません。外部コマンドです。 Windowsであれば、コマンドプロンプトから実行してください。 テーブルをあらかじめdropしておかないのであれば、ignore=yを追加してください。 >大量の表がある場合、どのようにして削除するのが >よいでしょうか? drop table テーブル名1; drop table テーブル名2; ・ ・ と記述したテキストファイルを準備し、 SQL*Plusでファイル名を指定して実行すればよろしいかと。 >olacle7は間違いなく使えません。 使用可能なオプションは、 imp ユーザ名/パスワード help=y で表示されます。確認してください。

共感・感謝の気持ちを伝えよう!

質問者からの補足

ありがとうございます。 >テーブルをあらかじめdropしておかないのであれば、 >ignore=yを追加してください。 上記のオプションを見てみたのですが、処理が続行される ことは分かりました。 やりたいこととしては、大量のテーブル&データがある状態で、最新のものを頂いたので、最新の状態にしたいと 思っています。 既存のテーブルも大量にあり、新規のものが少し混ざった 状態です。上記オプションで、既存のテーブルは古いデータが削除され、新しいデータが入った状態となり、新規に増えたテーブルは 新規に作成(データ込み)と考えて正しいでしょうか?

  • 回答No.1

1) 更新されずにエラーになると思います。 中身はInsert文なので。 2) olacleはtouser使えたっけ? olacle7は間違いなく使えません。

共感・感謝の気持ちを伝えよう!

質問者からの補足

まず、表を削除しないといけないのですね。 この場合、test2のユーザーのスキーマに作成 されている表を削除することになると思うのですが、 大量の表がある場合、どのようにして削除するのが よいでしょうか?

関連するQ&A

  • インポートについて

    初歩的な質問ですみません・・・ ユーザモードでエクスポートした [ data.dmp ] があるのですが、このデータを、同じユーザが作成されている別のデータベースに、インポートしたいと思っています。その時、 [ data.dmp ] にある全テーブルのデータを(テーブルの作成と合わせて)インポートしたいのですが、 IMP USERID=****/**** FILE=user.dmp LOG=imp.log FULL=y IGNORE=y で大丈夫でしょうか? 「FULL」というパラメータが良く分かっていません。「全体をインポート」「全ファイルをインポート」という説明があったのですが、「全部」とは何を意味しているのか良く理解できていません。 よろしくお願いします。

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

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

  • 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」をつけたりしたのですが、 とくに変化はありませんでした。

  • インポートコマンドが認識されません

    環境は、windows2000プラットフォームに、oracle9iです。 上記環境に、初期データベースを作成し、エクスポートされたダンプファイル(もらいもの)をインポートしようとしたんですが以下メッセージが出力され、ダンプファイルの取り込みができません。 インポートの方法は、以下です。 imp system/xxxxx@SID file=xxx.dmp fromuser=xxx touser=xxx 尚、toに指定しているユーザも作成してあります。 付与した権限は、connect、resourceです。 あと、インポートコマンド発行時に出力されるメッセージは次のようなものです。 SP2-0734: "imp system..."が開始するコマンドが不明です -残りの行は無視されました。 と出力されます。 上記メッセージから、impコマンドが認識されていないようにおもわれるのですが、ちょっと調べては見たのですが分からなかったので、ご教授ねがいます。

  • 8iで保存したDMPデータの10gでのインポートについて

    8iで保存したDMPデータの10gでのインポートについて 8iで保存したDMPデータの10gでのインポートについて 仕様上はOKのはずなのですが うまく動作できません。 (下記のメッセージとなります) 保存の時かインポートの時に何かオプションがいりますでしょうか。 ===================== 接続先: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production With the Partitioning, OLAP and Data Mining options インポート・ファイル: EXPDAT.DMP > C:\EXPDAT.DMP 挿入バッファ・サイズを入力してください(最小値8192)。30720> エクスポート・ファイルはEXPORT:V08.01.07によって従来型パス経由で作成されました IMP-00013: DBAのみ別のDBAがエクスポートしたファイルをインポートできます。 IMP-00000: エラーが発生したためインポートを終了します。

  • 11gデータから10gへのインポートについて

    あるシステムのDB管理を行うにあたり、 Oracleを使用しているのですが、 Oracleのバージョンの違いにより、 DMPファイルのインポートが行えない事はございますでしょうか? 詳細は以下です。 ローカル環境のシステム Oracle 10g / 10.2.0.1.0 社内環境のシステム Oracle 11g / 11.2.0.1.0 社内環境システムよりバックアップを行い出力されたDMPファイルを ローカル環境へインポートを試みたところ、 以下のエラーが発生し、インポートができません。 *************************************************************************** 接続先: Oracle Database 10g Release 10.2.0.1.0 - Production IMP-00010: 有効なエクスポート・ファイルではありません。ヘッダーは検証に失敗しました。 IMP-00000: エラーが発生したためインポートを終了します。 接続先: Oracle Database 10g Release 10.2.0.1.0 - Production IMP-00010: 有効なエクスポート・ファイルではありません。ヘッダーは検証に失敗しました。 IMP-00000: エラーが発生したためインポートを終了します。 *************************************************************************** 解決方法をご存知の方がおられましたら ご教示いただけると有難いです。 以上、宜しくお願い致します。

  • バイナリデータが入ったDMPファイルのインポート

    今DMPファイルのインポートを行った際、 ”ダンプ・ファイルをエクスポートしたダイレクト・パスには無効な列長が入っています” というエラーメッセージが表示されてしまい、インポートすることができません。 1つのテーブルのデータとしてバイナリデータが含まれているのでそれが原因だと思い、テーブル名指定でインポートを行いましたがエラーは回避されませんでした。 データごとむりであったとしても、せめてテーブル構造だけでも復元したいのですが・・・。 何か方法があったら教えてください。 ※パラメータのROWS=Yにしてテーブル名指定でインポートも無理でした・・・

  • サーバーの移行について(エクスポートとインポート)

    ご覧頂きありがとうございます。 サーバーの移行がうまくいかず困っているのでご質問させていただきます。 やりたいことは、本サーバーにあるOracleデータベースのデータをエクスポートして、開発環境にインポートさせようと思っています。 以下、行った作業です。 windowsのコマンドプロンプトから以下のコマンドを実行してエクスポート C:\>emp sadmin/password@sid file=C:\ora_data\empsid.dmp consistent=y owner=sadmin 開発環境にて、表領域の作成とユーザの作成、権限の付与を行う。 SQL>CREATE TABLESPACE HOGE datafile 'C:\temp\HOGE1.dbf' size 800M reuse logging online segment space management auto; SQL>CREATE TEMPORARY TABLESPACE HOGE_TEMP tempfile 'C:\temp\HOGE_TEMP1.dbf' size 800M extent management local uniform size 10M; SQL>CREATE USER sadmin IDENTIFIED BY hogehoge DEFAULT TABLESPACE HOGE TEMPORARY TABLESPACE HOGE_TEMP QUOTA UNLIMITED ON HOGE; SQL>GRANT DBA TO sadmin; GRANT IMP_FULL_DATABASE TO sadmin; 以下のコマンドを実行して、windowsのコマンドプロンプトからインポート。 C:\>imp sadmin/password@sid file=C:\ora_data\empsid.dmp log=C:\ora_data\impsid.log fromuser=sadmin touser=sadmin ignore=y 状況としましては、エクスポートは問題なく終了しています。(確信はありませんが(汗)) インポート実行時、トリガーの箇所だと思うのですが処理が止まってしまいインポートが完了しません。 画面上では、「制約を使用可能にします・・」と表示されて止まってしまいます。 ログには以下のようなエラーが出ています。 IMP-00003: Oracleエラー439が発生しました。 ORA-00439: 機能は有効ではありません: Partitioning IMP-00041: 警告: オブジェクト作成の際、コンパイル・エラーが発生しました。 DBを見てみると、データのインポートはできているようなのですが、トリガーのインポートができていないみたいです。 当方Oracleを触るのは初めてで、書籍やGoogle検索などで調べているのですが、原因解明できず途方にくれています。 どなたかご助言頂けないでしょうか? 宜しくお願いします。

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

    はじめまして。 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: エラーが発生したためインポートを終了します。 --------------------------------------------- お忙しいところすいませんが、手を貸して下さい。 失礼します。

  • インポートしたら遅くなった

    インポートしたら遅くなった oracle11gにおいて、expし間髪いれずにimpしたところ更新処理が極端に遅くなり困っております。 同じような経験があるかたお教えいただけないでしょうか。 なお、EXPのパラメータはユーザ指定で行い、その他のパラメータは初期値のままです IMPについては、パラメータは初期値のままです *IMP実行前にデータはDROPしております