- ベストアンサー
異なる文字コードの環境でのデータインポート方法と注意点
- 異なる文字コードの環境において、AサーバからエクスポートしたdmpファイルをBサーバにインポートする方法を解説します。
- 文字コードが異なる場合、まずはインポート先のBサーバで適切な文字コードを設定する必要があります。
- 注意点として、エクスポート元のAサーバの文字コードとインポート先のBサーバの文字コードが正しく設定されているかを確認し、データの損失や文字化けなどの問題を避けることが重要です。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
ゴールとなるBサーバが、JA16SJISであるなら、何をしようが、 JA16SJISで表現できる文字コード以外文字化けする。 NLS_LANGをJA16SJISに設定したクライアントで、 (1)Aサーバからエクスポート (2)Bサーバへインポート するのと一緒。 今回の場合、それで問題が出るなら、DB作成時のキャラクタセットの選択ミスであり エクスポート/インポートで何とかできる問題ではない。 最初にも書いていますが、必ず文字化けが起こるわけではないので、注意してください。 クライアントPCのOSやミドルウエアに何を使うかで、JA16SJISでも問題なく使えますので。
その他の回答 (2)
- k_o_r_o_c_h_a_n
- ベストアンサー率55% (526/942)
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に左右されるので、注意してください。 一度、オラクルのマニュアルを読むと、文字コード絡みの説明が書いてあるので、 間違いがないと思いますよ。
- k_o_r_o_c_h_a_n
- ベストアンサー率55% (526/942)
ユーティリティを起動するオラクルクライアントPCのNLS設定が適切なら、 文字コード変換を自動で行います。 今回の場合、JA16SJISなクライアントで処理すれば、良いと思います。 (A-B間がネットワーク的に接続できる環境下なら、Bサーバ上のEXPで処理するのが手っ取り早いかと) 1つ気になるのですが、JA16EUCTILDE→JA16SJISへの移行だと、データ上のティルダが 文字化けする可能性があるのは了解済みなんですよね? (利用環境によっては問題ないと思いますけど)
補足
回答ありがとうございます。 > ユーティリティを起動するオラクルクライアントPCのNLS設定が適切なら、 > 文字コード変換を自動で行います。 > 今回の場合、JA16SJISなクライアントで処理すれば、良いと思います。 以下のSQLで実行して文字コードを参照しました。 SELECT VALUE FROM V$NLS_PARAMETERS WHERE PARAMETER = 'NLS_CHARACTERSET'; > 1つ気になるのですが、JA16EUCTILDE→JA16SJISへの移行だと、データ上のティルダが > 文字化けする可能性があるのは了解済みなんですよね? > (利用環境によっては問題ないと思いますけど) 文字化け以前にこのような事ができるのかできないのかしか考えていませんでした。 せっかく説明してもらって申し訳ありませんがもう少し解りやすく教えていただけませんでしょう。 本当に申し訳ありませんが宜しくお願いします。
補足
回答、ありがとうございます。 > 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でダンプしたファイルをインポート こうしたらどうでしょうか。 もう少し私にお付き合いください。 大変、申し訳ございませんが宜しくお願いします。