2014年08月02日

ORACLE 11g IMP-00038 キャラクタセットが同じ場合の原因 解決方法

ORACLE 11g IMP-00038 キャラクタセットが同じ場合の原因 解決方法


今日は、ORACLE 11gのインポート中に発生するエラーで、エラーメッセージが役にたたない物の原因と解決方法について紹介したいと思います。

外国のブログなどでは、結構紹介されているようですが「日本語」で書かれたページを見つけることが出来なかったので、同じように困っている人向けの情報として書きます。

「IMP-00038:キャラクタ・セットのハンドルに変換できません」

上記エラーメッセージは、ORACLEのリリースノートのメッセージ一覧では次のように書かれています。

「IMP-00038: キャラクタ・セットのハンドルに変換できません
原因: これは内部エラーです。
処置: Oracleサポート・サービスに連絡してください。」

うん……



本題の部分を書きたいと思います。

原因1.インポート先と、エキスポートしたORACLE DBのキャラクタセットが異なっている。

インポート先と、エキスポートしたDBで下記SQLを実行する事で確認することができます。
変換できないキャラクタセットの組み合わせだった場合は、どちらかのDBのキャラクタセットを変えます。

SELECT * FROM nls_database_parameters WHERE parameter ='NLS_CHARACTERSET';

文字化けする場合は、下記の表示形式も確認してください。

SELECT * FROM nls_database_parameters WHERE parameter ='NLS_LANGUAGE';

上記の情報は、いろいろあるので「異なるキャラクタセットの環境にインポート」する方法を調べてください。



原因2.インポート先とエクスポート元のキャラクタセットは一致しているのになぜかエラーとなる場合

今回、私自身これでハマりました。

受領したファイルは、「oracle_database.dmp」だったので、「impコマンド」でインポートしようとしたのですが、「IMP-00038:キャラクタ・セットのハンドルに変換できません 」のエラーとなり、処理が続行できませんでした。
「キャラクタセット」を確認しても一緒。
日本語のWEBページで探しても「インポート先とエクスポート元のキャラクタセット」をそろえましょうだけ。

非常に困りました。

結論をいうと、「EXPDP(データ·ポンプ·エクスポート」で出力したファイルを「impコマンド」でインポートしようとすると上記のメッセージとなるようです。
そのため、「IMPDPコマンド」で、インポートを試してみてください。
※業務で対応の場合は、「ORACLEサポート」に連絡するなどして事故を防ぐように計画してから行ってください。

いきなり試すのが難しい場合は、インポートコマンドの引数に「show=y」を付けると確認だけできます。
エクスポート時に、拡張子を省略すると「dmp」が自動補完されるようです。

日本では、めったに遭遇しないパターンの例外なのかもしれません。

人気ブログランキングへ人気ブログランキングへ 記事が参考となりましたら。ブログランキングバナーのクリックをお願いします。




[てぃーだブログ広告]


同じカテゴリー(IT関連)の記事

この記事へのコメント
大変助かりました。
ありがとうございました。
Posted by huangzf128 at 2017年12月11日 11:35
お役に立てて幸いです。
Posted by RiichiRiichi at 2017年12月12日 21:24
上の画像に書かれている文字を入力して下さい
 
<ご注意>
書き込まれた内容は公開され、ブログの持ち主だけが削除できます。

アクセスカウンタ
読者登録
メールアドレスを入力して登録する事で、このブログの新着エントリーをメールでお届けいたします。解除は→こちら
現在の読者数 3人
QRコード
QRCODE