こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

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 ← このユーザーの表領域にデータを作成したい。

投稿日時 - 2004-09-02 01:48:23

QNo.985288

すぐに回答ほしいです

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

>上記オプションで、既存のテーブルは古いデータが削除され、

ignore=yにしてもimpコマンドではデータの削除は行われません。
一意制約違反となります。
あらかじめ不要なデータは消しておきましょう。

truncate table テーブル名;
でデータを切り捨てるのがいいかと。


>新規に増えたテーブルは
>新規に作成(データ込み)と考えて正しいでしょうか?

はい。こちらはこうです。

投稿日時 - 2004-09-02 10:45:55

お礼

お返事が遅くなってすいません。

アドバイス頂いたおかげで、成功しました。
ありがとうございました。

投稿日時 - 2004-09-07 05:43:37

このQ&Aは役に立ちましたか?

3人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.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
で表示されます。確認してください。

投稿日時 - 2004-09-02 10:05:43

補足

ありがとうございます。

>テーブルをあらかじめdropしておかないのであれば、
>ignore=yを追加してください。

上記のオプションを見てみたのですが、処理が続行される
ことは分かりました。
やりたいこととしては、大量のテーブル&データがある状態で、最新のものを頂いたので、最新の状態にしたいと
思っています。

既存のテーブルも大量にあり、新規のものが少し混ざった
状態です。上記オプションで、既存のテーブルは古いデータが削除され、新しいデータが入った状態となり、新規に増えたテーブルは
新規に作成(データ込み)と考えて正しいでしょうか?

投稿日時 - 2004-09-02 10:34:35

ANo.1

1)
更新されずにエラーになると思います。
中身はInsert文なので。

2)
olacleはtouser使えたっけ?
olacle7は間違いなく使えません。

投稿日時 - 2004-09-02 04:00:55

補足

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

投稿日時 - 2004-09-02 07:29:06

あなたにオススメの質問