異なる文字コードの環境でのデータインポート方法と注意点

このQ&Aのポイント
  • 異なる文字コードの環境において、AサーバからエクスポートしたdmpファイルをBサーバにインポートする方法を解説します。
  • 文字コードが異なる場合、まずはインポート先のBサーバで適切な文字コードを設定する必要があります。
  • 注意点として、エクスポート元のAサーバの文字コードとインポート先のBサーバの文字コードが正しく設定されているかを確認し、データの損失や文字化けなどの問題を避けることが重要です。
回答を見る
  • ベストアンサー

異なる文字コードの環境にインポートするには

下記のようにサーバがあります。 ・Aサーバ(Solaris) ・Bサーバ(Windows) 下記のように文字コードが異なります。 ・Aサーバ(JA16EUCTILDE) ・Bサーバ(JA16SJIS) ※Oracleのバージョンは同じです。 AサーバでエクスポートしたdmpファイルをBサーバにインポートしたいと考えています。 文字コードが異なるdmpファイルをインポートするにはどのようにしたらいいのでしょうか。また注意点などあるのでしょうか。 テストする環境が今ないため、試す事ができません。 些細な事でも何でも構いませんのでアドバイスいただけませんでしょうか。 宜しくお願いします。

  • Oracle
  • 回答数3
  • ありがとう数6

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

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

ゴールとなるBサーバが、JA16SJISであるなら、何をしようが、 JA16SJISで表現できる文字コード以外文字化けする。 NLS_LANGをJA16SJISに設定したクライアントで、 (1)Aサーバからエクスポート (2)Bサーバへインポート するのと一緒。 今回の場合、それで問題が出るなら、DB作成時のキャラクタセットの選択ミスであり エクスポート/インポートで何とかできる問題ではない。 最初にも書いていますが、必ず文字化けが起こるわけではないので、注意してください。 クライアントPCのOSやミドルウエアに何を使うかで、JA16SJISでも問題なく使えますので。

その他の回答 (2)

回答No.2

Aサーバが、JA16EUCTILDEなのに、なぜBサーバは、JA16SJISTILDEでなくJA16SJISを選択したのですか? これはインポートで悩む問題ではなく、DBを作成するときに考える問題です。 DBが、JA16SJISで設定されているなら、どんな問題でようとJA16SJISでしかインポートできないので。 >以下のSQLで実行して文字コードを参照しました。 >SELECT VALUE FROM V$NLS_PARAMETERS WHERE PARAMETER = 'NLS_CHARACTERSET'; これは、DB側のキャラクタセットです。 文字コードの変換は、EXPORT/IMPORTを起動するPCのNLS_LANGに左右されるので、注意してください。 一度、オラクルのマニュアルを読むと、文字コード絡みの説明が書いてあるので、 間違いがないと思いますよ。

T-k_jp
質問者

補足

回答、ありがとうございます。 > Aサーバが、JA16EUCTILDEなのに、なぜBサーバは、JA16SJISTILDEでなくJA16SJISを選択したのですか? Bサーバは既にOracle環境(JA16SJIS)があるのでこの環境を利用したいとの事でこのようになりました。 > 文字コードの変換は、EXPORT/IMPORTを起動するPCのNLS_LANGに左右されるので、注意してください。 ちょっと考えてみたんですがアドバイスいただけたら幸いです。 1. NLS_LANGが「JA16SJISTILDE」のクライアントPC1でAサーバからエクスポート 2. Cサーバにオラクルをインストール(JA16SJISTILDE)して1でダンプしたファイルをインポート 3. NLS_LANGが「JA16SJIS」のクライアントPC2でAサーバからエクスポート 4. Bサーバ(JA16SJIS)に3でダンプしたファイルをインポート こうしたらどうでしょうか。 もう少し私にお付き合いください。 大変、申し訳ございませんが宜しくお願いします。

回答No.1

ユーティリティを起動するオラクルクライアントPCのNLS設定が適切なら、 文字コード変換を自動で行います。 今回の場合、JA16SJISなクライアントで処理すれば、良いと思います。 (A-B間がネットワーク的に接続できる環境下なら、Bサーバ上のEXPで処理するのが手っ取り早いかと) 1つ気になるのですが、JA16EUCTILDE→JA16SJISへの移行だと、データ上のティルダが 文字化けする可能性があるのは了解済みなんですよね? (利用環境によっては問題ないと思いますけど)

T-k_jp
質問者

補足

回答ありがとうございます。 > ユーティリティを起動するオラクルクライアントPCのNLS設定が適切なら、 > 文字コード変換を自動で行います。 > 今回の場合、JA16SJISなクライアントで処理すれば、良いと思います。 以下のSQLで実行して文字コードを参照しました。 SELECT VALUE FROM V$NLS_PARAMETERS WHERE PARAMETER = 'NLS_CHARACTERSET'; > 1つ気になるのですが、JA16EUCTILDE→JA16SJISへの移行だと、データ上のティルダが > 文字化けする可能性があるのは了解済みなんですよね? > (利用環境によっては問題ないと思いますけど) 文字化け以前にこのような事ができるのかできないのかしか考えていませんでした。 せっかく説明してもらって申し訳ありませんがもう少し解りやすく教えていただけませんでしょう。 本当に申し訳ありませんが宜しくお願いします。

関連するQ&A

  • インポートエラー(IMP-00010)

    Solaris上のOracle9.2.0 でエクスポートしたファイルを Windows上のOracle9.0.1 にインポートしようとしたら 以下のエラーがでました ----------------------------------- IMP-00010:有効なエクスポート・ファイルではありません。ヘッダーは検証に失敗しました IMP-00000:エラーが発生したためインポートを終了します。 ----------------------------------- 原因は、Oracleのバージョン違い(9.2.0から9.0.1へのバージョンダウン)による物でしょうか?。 それとも、SolarisからWindowsにインポートした事による、例えば文字コード等による物でしょうか? また、原因に対する解決策はありますでしょうか?

  • Solarisの文字コードについて

    Solaris8をインストールしました。 文字コードはEUCになっていると思いますが、テキストファイルを EUCでSolaris8サーバにアップロードしてもviで参照すると文字化けしてしまいます。 (1)システムの文字コードの確認方法を教えて下さい。 (2)文字コードをSJISからEUCに変換する方法を教えて下さい。 (nkfコマンドを打ってもcommand not foundになります。。標準ではインストールされないのでしょうか?) p.s OSのインストール時、下記のように入力しました。 ・Select a Locale →0.Japanese EUC(ja) ・ソフトウェアの対応地域 →アジア・Japanese EUC(ja)、Japanese PC Kanji(ja_JP.PCK)、Japanese UTF-8(ja_JP.UTF-8)

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

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

  • 文字コードの違うファイルインポート

    こんにちわ。 いつもお世話になっています。 文字コードの違うcsvファイルをTransferTextでインポートしたいのですが いい方法がなく困っています。 ご存知の方、ご教示下さい。 【経緯】 csvファイルはインターフェイス上では文字コードが「unicode」 で設定されているとの事でした。 mdbにてファイルのインポートを行うと文字化けするのでインポート定義を 設定してみた所、「UTF-8」だけが日本語にできたました。 しかし、インポートしてみるとカラム数が12個あったのに対して9個しか 取込できませんでした。 そこでそのcsvをエディタにて「名前を付けて保存」→文字コードを「SJIS」に変更して 保存し直しました。 その保存し直したcsvを読込するとカラム数も12個で文字も日本語でインポート できました。 どうしてもVBAでコマンドボタンを押下してインポートしたいのですが いい方法が見つかりません。 お知恵をお貸し下さい。 よろしくお願い致します。

  • oracleの文字コードとlinuxサーバの文字コードが異なる場合、サ

    oracleの文字コードとlinuxサーバの文字コードが異なる場合、サーバからシェルまたはsqlplusでDBに接続し、spoolコマンドで指定したファイルに、SQLの実行結果や、PLSQLのDNMS_OUTPUTで出力した内容を保存すると文字化けしてしまいます。 これを回避するにはどうすればよいのか、ご教授下さい。 具体的な環境は、下記の通りです。 oracles:SJIS(NLS-LANGはSJIS系にしています) サーバUTF8 出来ればUTF8でファイルに出力したいのですが、無理なら最低でもSJISで出力させたいです。現在は、ftpでバイナリーダウンロードさせて秀丸などのエディターで見ても、どちらとも認識できない文字コードになっているようです。 なお、お客様側のサーバなので、DBやOSの文字コードを変えることはできません。

  • Solarisでイクスポートし、Windowsでインポートする

    Solarisでエクスポートしたdmpファイルを Windowsへインポートしようとしたら IMP-00010:有効なエクスポート・ファイルではありません。ヘッダーは検証に失敗しました。 のエラーが出ました。 ファイルをFTPで取得する時、Windowsのコマンドプロンプトの FTPでそのまま行った為、アスキーモードで転送されたと考えてます。 ここで質問なのですが 1.アスキーモードで転送されたファイルをWindowsへインポート  すると失敗しますか?  失敗する場合、このファイルを何か再変換みたいな事をして  インポート可能なファイルにする事はできるでしょうか? 2.アスキーモードで転送されたこのファイルは、  同じSolarisマシンに対しては、インポート可能でしょうか? (Solarisのマシンは遠方にある為、再度取得が簡単ではないです。 何か分かりましたら、よろしくお願いします。)

  • phpMyAdminでCSVファイルをインポートするが文字化け

    MYSQL初心者です。 教えてください。御願いします。 phpMyAdminにて、漢字コードが「Sjis」のCSVファイルをLinuxサーバのMySQLにインポートするのですが、文字化けを起こしてしまい、旨く変換出来ません。多分、「utf8」に変換されているようです。勿論変換時の漢字コードは「sjis」にしております。どなたか助けて下さい。宜しく御願いします。

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

    オラクルDB(R8.1.7)でエクスポートしたDMPデータを(10.2G)にインポートができるかを まず教えていただけませんでしょうか。 可能であれば 注意点等お聞かせ頂けると助かります。

  • 環境変数NLS_LANGの設定方法

    - UMIXのORACLEからDBをエクスポートしたものを、NTのORACLEのDBに インポートしたいのですが、エラーが発生してしまい上手くインポート出来ません。 調べた結果、環境変数NLS_LANGを設定すれば、エラー無くインポート出来るようなの ですが、今度は、環境変数の設定が上手く行きません。 DOS上で下記を入力し実行しました。。。。  >set NLS_LANG JA16SJIS 「JA16SJIS」は、sql*より、V$NLS_PARAMETERSを参照した値を設定。 でも、環境変数は存在しませんのエラーメッセージで、上手くいきません。 きっと、根本的に間違っているようにも思うのですが、どうしたらよいのか わからずに困っています。 アドバイス等がありましたら、是非、宜しくお願い致します。 -

  • 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: エラーが発生したためインポートを終了します。 *************************************************************************** 解決方法をご存知の方がおられましたら ご教示いただけると有難いです。 以上、宜しくお願い致します。