• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:文字コード、テリトリについて。)

英語OS上にOracleをインストールし、日本語データを格納する際の問題

このQ&Aのポイント
  • Oracleをインストールした英語OS上で日本語データを格納する方法について調査中です。現在の設定では正しく取り出すことができず、解決方法を探しています。環境変数のLANGを一時的に変更することで対応可能でしょうか?他にも対応方法があるか教えてください。
  • 英語OS上にOracleをインストールしましたが、日本語データを格納する際に問題が発生しています。現在の設定では正しく取り出すことができません。環境変数のLANGを一時的に変更することで解決できるかどうか検討していますが、他にも対応方法があるか教えていただけますか?
  • Oracleを英語OS上にインストールしていますが、日本語データの格納に問題があります。現在の設定では正しく取り出すことができず、困っています。環境変数のLANGを一時的に変更すれば解決する可能性があるのか、他の対応方法があるのか、アドバイスをお願いできますか?

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

  • ベストアンサー
  • GoF
  • ベストアンサー率37% (34/91)
回答No.2

データの漢字変換に問題があるのではないでしょうか。 漢字データの内部の格納コードを以下のSQLで確認してください。 そして、16進コードと文字がコード表と一致していますか? 一致するなら、取り出す側の問題となり。 一致しなければ、データ投入側の変換問題です。 どちらも 投入するクライアントの NLS_LANGの設定ミス と思われます。 -- kanji_columnを16進で取り出す select dump(kanji_column, 1016) from kanji_table where rownum <= 10

noel1979
質問者

お礼

回答に気づく前に再インストールを実施してしまったため、 確認することはできませんでした。 UFT8でinsert用sqlファイルを作成し、 Oracleを実行しているマシン上からsqlplusで投入、 取り出しを行っても、うまく表示することはできませんでした。 (NLS_LANGはjapanese_japan.al32utf8) 結果として、Oracleを一度アンインストールし oracle install userの環境変数を一時的に LANGをja_jp.utf8 LANGVARをja_jp.utf8 NLS_LANGをjapanese_japan.al32utf8 に変更し、再インストールを行ったところ、 正常にデータの書き込み、取り出しが可能になりました。 (以前は LANG=en_us.utf-8 LANGVAR=en_us-utf-8:en_US:en NLS_LANG=japanese_japan.al32utf8 でインストールを行い、データの入出力の際は LANG=ja_jp.utf8 LANGVAR=ja_jp.utf8 NLS_LANG=japanese_japan.al32utf8 にしてみたりしたが、駄目だった) 教えて頂いたselect文を実行することはありませんでしたが、 今後のためにも覚えておこうと思います。 有難う御座いました。

その他の回答 (1)

  • GoF
  • ベストアンサー率37% (34/91)
回答No.1

文字コードとLANGUAGEを混同されておりませんでしょうか? 環境変数 NLS_LANGを調べてみてください NLS_LANG=language_territory.charset で構成されます。 文字コードは、charsetですので NLS_LANGUAGEを変更しても メッセージやソートなどの条件に影響するだけとなります。 また、データベースの作成時に、キャラクタセットを指定しなければ ASCIIで作成されていると思われます。 再インストールはしなくても、データベースの再作成で済むのではないでしょうか。 CREATE DATABASE 文の CHARSETを確認してください。

noel1979
質問者

お礼

回答有難う御座います。 NLS_LANG=japanese_japan.al32utf8 CREATE DATABASE 文の CHARSET はUTF8ですので、 特に問題はないと思っています・・・

関連するQ&A