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

解決済みの質問

oracleのimp-00002エラーについて

こんにちは shohei3728と申します。
会社にてoracleのシステムの一部を担当している者です。
現在、顧客先に導入しているシステムにて、エラーが発生し困っております。
知恵をお借りしたくこちらに相談させて頂きます。

具体的には下記の現象が発生しております。
-----------------------------------------------------------
バッチ処理にて下記のoracleのimportを行うと下記のエラーが発生しました。

imp user/password@sid file=filename full=y

imp-00002:読み取り用のfilenameのopenに失敗しました。
インポート・ファイル:EXPDAT.DMP >
-----------------------------------------------------------

また、現状わかっている内容は以下になります。
・ファイルはバッチと同じ階層にあり、パスが間違っている事はありませんでした。
・oracle9i cl と oracle 10g express editionの同居
・windows XP(32bit)

遠方の顧客なため、実際のコンソールを操作する事は難しいです。
(現状わかっている情報は顧客に電話にて操作して貰った内容になります。)

質問内容のレベルは低いかもしれませんが、顧客先にてトラブルが発生しているため、
藁をも掴む思いで書かせて頂いています。
当方の技術レベルもそこまで高くないので、噛み砕いてご助言いただければ幸いです。

ご教授の程、よろしくお願い致します。

投稿日時 - 2013-08-21 20:19:25

QNo.8229871

すぐに回答ほしいです

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

情報が少ないのでなんともいえませんが

>パスが間違っている事はありませんでした。
これが嘘だと思います。

>ファイルはバッチと同じ階層にあり
と言う事は相対パスで指定しているのではないかと思います。相対パスの指定の仕方を失敗しているように思います。絶対パスで試してみましょう。

投稿日時 - 2013-08-21 20:41:15

補足

早々のご回答ありがとうございます。


絶対パスの変更を試してみようと思います。
結果はこちらに書き込ませて頂きます。

また、どういった情報が必要であるかを教えて頂ければ、
可能な範囲で提供したいと考えておりますので、
教えて頂ければ幸いです。

ご確認よろしくお願い致します。

投稿日時 - 2013-08-22 00:01:52

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

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

回答(3)

ANo.3

>また、どういった情報が必要であるかを教えて頂ければ、

絶対パスにしたら治る可能性が高いと思ったので書きませんでしたが…


「バッチ」とは何かとか、起動方法やその内容とか。バッチではなくコマンドプロンプトから「imp user/password@sid file=filename full=y」のコマンドを、ファイルのある場所で実行したらどうなるのかとか。それから1回でも成功した事があるものが、失敗するようになったのか、1度も成功した事が無くはじめて試しているところかとか。

とにかく状況を伝えようとする意思を持つことが重要だと思いますよ。「聞かれたら答えますよ」という態度ではなく。


「バッチ」の処理の中でCDされていてカレントディレクトリが変更されているんじゃないかとか、何も書いていないが実は何らかのジョブスケジューラーを使っていてそのスケジューラーの機能でカレントディレクトリが変更されているとかの可能性があるかなと考えました。

が、そういうところをくどくど言わなくても絶対パスにすりゃいいだろと思っています。

投稿日時 - 2013-08-22 01:16:19

補足

補足がおそくなり、申し訳ありません。

ご指摘頂きありがとうござます。

可能な限り情報提供させて頂きます。

>、起動方法
今回問題となっているバッチはVBScriptからコールしているものになります。
VBScriptの処理は下記のとおりです。
(1)CDの中からデータをdmpファイルをコピー(xcopyにて実行、今回問題となっている処理のdmpファイルを
  コピーしています。)
(2)問題となっているバッチをコール
VBScriptの処理は以上になります。

>バッチの処理内容
今回、問題となっているバッチの処理内容については
下記の通りです。
(1)tableAのバックアップ取得
(2)tableAテーブルの削除(drop)
(3)tableAのインポート(ここが今問題になっている処理になります。)
(4)(3)にてインポートしたtableAを基に新しくtableBを再構成
バッチの処理は以上です。

>元はどうだったのか
以前は私が現地に訪問し検証を行った際は正常に動作しておりましたが、
今回IMP-00002のエラーを出しております。

補足ですが、このバッチ(VBScript)は1か月に一回ペースで流すバッチになりますので、
いつからこのようなエラーが発生したのかについては具体的にはわかりません。(前回はエラーが発生し処理が止まる事はなかったとの事ですので、1か月前は正常に動作していたと思われます。)

よろしくお願い致します。

投稿日時 - 2013-08-23 11:15:30

ANo.2

> imp user/password@sid file=filename full=y
例示で文字を置き換えてあると思います。

意図しているカレントフォルダは何ですか?
本当にそこにDMPファイルがありますか?
対象のファイルが実在するのにエラーなら、カレントフォルダが何かの原因で間違ってる。

file=filenameをフルパスにしてみるのが一番かも。

# エクスプローラで拡張子を非表示設定に気づかずに、
# ユーザさんにリネームさせちゃってて
# filename.dmpのはずがfilename.dmp.dmpだったとか

投稿日時 - 2013-08-21 20:52:57

補足

早々のご回答ありがとうございます。

>意図しているカレントフォルダは何ですか?
実行するバッチファイル及びdmpファイルがあるフォルダになります。

>本当にそこにDMPファイルがありますか?
dmpファイルは存在していました。

カレントフォルダは意図するフォルダになっております。

絶対パスへの変更は試してみます。

投稿日時 - 2013-08-22 00:11:29

あなたにオススメの質問