【初心者向け】簡単にOracleのdmpファイルをインポートする方法(例文あり)

Oracleユーザであれば必ずと言っても過言では無いでしょう。dmpファイルのインポート方法です。この記事は上司や先輩から「dmpインポートしといて」と言われた新人や若手向けの内容のため、超絶テクニカルな方法を採用していません。Windowsのコマンドプロンプトから実行する方法を紹介します。また、本記事作成にあたって利用したOracleのバージョンは11gR2です。

【準備】必要な物

まずは準備です。

  • Oracleのdmpファイル
  • dmpファイルのフルパス
  • インポートに必要なSQLコマンド
  • テキストファイル(メモ帳orテキストエディタ)
  • コマンドプロンプト

はい、以上です。これくらいなら用意出来ると思います。

 

dmpファイルのフルパスをテキストファイルに控えておく

dmpファイルを選択して右クリックすると、色々なメニューが出てきます。プロパティを選択してプロパティ画面を表示させ、セキュリティタブのオブジェクト名の部分に記載しているフルパスをテキストファイルに控えておきましょう。

 

必要なSQLコマンドをテキストファイルに控えておく

必要なコマンドは以下です。

  • DBユーザ名
  • DBパスワード
  • DB名称(いわゆるDBNAME)
  • importコマンド(パラメータ含む)

DBユーザとDBパスワードはOracleにログインする時に必ず必要です。DB名称は「DBユーザ名/DBパスワード@DB名称」の部分、つまり@(アットマーク)の後ろの部分です。次にimportコマンドですが、今回はスキーマの全データをインポートする想定で行います。最低限必要なコマンドは以下です。

imp DBユーザ名/DBパスワード@DB名称 file=c:¥hoge.dmp log=c:¥result.log

この「file=c:¥hoge.dmp」の部分には、インポートしたいdmpファイルのフルパスを記述します。先ほどメモ帳に控えたパスを記載して下さい。これでインポートに最低限必要なSQLコマンドは完成です。「log=c:¥result.log」は実行時のログをファイルに記載してくれます。また、dmpファイルとログファイルの名称は必ず別の名称にして下さい。インポート時に失敗します。

 

コマンドプロンプト

コマンドプロンプトが何なのかわからない人は、もう少しだけ頑張って調べて頂きたいと思いますが、呼び出し方くらいは紹介します。コマンドプロンプトの呼び出し方は、WindowキーとRキーを同時押下で「ファイル名を指定して実行」というウィンドウズボックスが出てきます。そこに「cmd」と入力してOKボタンを押下して下さい。

 

【実践】インポートを実行する

コマンドプロンプト画面にSQL文を貼り付けるだけ

さて、いよいよインポートを行います。コマンドプロンプトも立ちあがっていると思うので、先ほど作成したSQLコマンドの文章をコピーしてコマンドプロンプトに貼り付けて下さい。貼り付けたらエンターキーを押下しましょう。dmpファイル内のデータのインポートがスタートします。インポートが完了するとコマンドプロンプトの画面に「インポートが終了しました。」と表示されます。

 

エラーが出た場合

恐らく、上手くインポート出来てない人もいると思います。私も最初はそんな感じでした。エラーコードがコマンドプロンプトの画面に出ますが、ログファイルを出力するようにSQLコマンドを作成したので、ログファイルの内容を確認して下さい。ログファイルの中にエラーメッセージが記載されています。全てのエラーをこの記事で網羅することが出来ないので、そうなった場合は調べて下さい。

 

あるあるなインポート時のエラー

IMP-00004: ユーザー名またはパスワードが無効です。

ユーザー名もしくはパスワードが間違っています。もう一度確認して、インポートコマンドを実行すれば正常にインポートがされるはずです。この時にはインポートコマンドの実行前なので、dmpファイルのデータが入ってしまうということはありません。

IMP-00015: 次の文は、オブジェクトがすでに存在するため失敗しました:

既にスキーマ内にテーブルが存在しているため、インポートに失敗したというメッセージです。「既に存在しているテーブルのインポートに失敗しましたよ。ですが、他のテーブルはインポートに成功してますよ。」ということです。

IMP-00050: ダンプ・ファイルとログ・ファイルを同一のものにできません。

先に記述しましたが、dmpファイルとログファイルの名称が一緒の場合はエラーが出ます。なので、インポートの際には必ずdmpファイルとログファイルの名称を別にして下さい。

 

まとめ

dmpファイルのインポートを紹介させて頂きました。基本中の基本の部分なのですが、データベース初心者には避けることが出来ない必須コマンドです。エラーについては、DB構成によるエラーもあるため、どんなDBでも有り得るだろうものを記載させて頂きました。少しでもお役立ち出来ればと思います。