
英語OS上にOracleをインストールし、
Oracle上では日本語のデータを格納する必要がある。
/etc/sysconfig/i18nの設定は
LANG="en_us.utf-8"
SUPPORTED="en_us.utf-8:en_us:en:ja_jp.eucjp:ja_jp:ja"
sysfont="latarcurheb-sun16"
で固定。
(エラーメッセージを英語で収集する必要があるため)
この状態でOracleをインストールしたところ、
インスタンスのnls_languageなどを日本語にしても、
日本語データを格納しても正しく取り出すことができません。
select * from nls_database_parameters;
の結果は
NLS_LANGUAGE AMERICAN
select * from v$nls_PARAMETERS;
の結果は
NLS_LANGUAGE JAPANESE
この場合、Oracleインストールの際に
環境変数のLANGを一時的に
LANG=ja_jp.eucjp
に変更することで対応可能でしょうか。
それとも他に何か対応方法は有りますでしょうか?
宜しくお願いいたします。
No.2ベストアンサー
- 回答日時:
データの漢字変換に問題があるのではないでしょうか。
漢字データの内部の格納コードを以下のSQLで確認してください。
そして、16進コードと文字がコード表と一致していますか?
一致するなら、取り出す側の問題となり。
一致しなければ、データ投入側の変換問題です。
どちらも 投入するクライアントの NLS_LANGの設定ミス
と思われます。
-- kanji_columnを16進で取り出す
select dump(kanji_column, 1016)
from kanji_table
where rownum <= 10
回答に気づく前に再インストールを実施してしまったため、
確認することはできませんでした。
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文を実行することはありませんでしたが、
今後のためにも覚えておこうと思います。
有難う御座いました。
No.1
- 回答日時:
文字コードとLANGUAGEを混同されておりませんでしょうか?
環境変数 NLS_LANGを調べてみてください
NLS_LANG=language_territory.charset で構成されます。
文字コードは、charsetですので NLS_LANGUAGEを変更しても
メッセージやソートなどの条件に影響するだけとなります。
また、データベースの作成時に、キャラクタセットを指定しなければ
ASCIIで作成されていると思われます。
再インストールはしなくても、データベースの再作成で済むのではないでしょうか。
CREATE DATABASE 文の CHARSETを確認してください。
回答有難う御座います。
NLS_LANG=japanese_japan.al32utf8
CREATE DATABASE 文の CHARSET はUTF8ですので、
特に問題はないと思っています・・・
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
副問合せにLIKE文を使う方法は...
-
Oracleで文字列型の時間を引き...
-
オラクル12C_SQLPlusで実行す...
-
複数レコードの完全一致
-
CASLⅡ 文字データから数値デー...
-
batファイルでのSQL(oracle)...
-
orace SQL文のエラー(ORA-0092...
-
oracleの直接接続のクライアン...
-
sqlplusで接続できない
-
64bit端末でのOLEDB接続に関して
-
データベースのカラムの型がCHA...
-
ORCALE SQL 複数のGROUP BY
-
windows 10をアップデートした...
-
棒読みちゃんが起動できないの...
-
sqlで質問です。 Aテーブルは店...
-
SQLの中上級者へのレベルアップ...
-
SELECTによる表の変換方法を教...
-
開発対象となるアプリケーショ...
-
質問です。 下記のテーブルとデ...
-
Oracleですがsqlで質問です。 ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SQL 全角半角混在の文字列から...
-
16進数の指定の仕方
-
InsertもしくはUpdate時の文字...
-
NLS_CHARACTERSETについて
-
HP上の字が文字化けする
-
VBScript + oo4o 更新すると文...
-
Oracleのnchar型について
-
文字コード、テリトリについて。
-
KeySQLで検索出来るキャラクタ...
-
SIDとSERVICE_NAMEの違いとは?
-
Fate/hollow ataraxiaの追加パ...
-
CloverをインストールしたUSBメ...
-
突然オラクルへ接続できなくな...
-
ORA-12170のエラーについて
-
DB2で SQL1032N start databas...
-
正しいSQLなのに「ORA-00936: ...
-
Oracle11g SQLPlusログインにつ...
-
倒産した18禁ゲーム会社のパ...
-
OraOps10.dllのエラーについて
-
.NET Frameworkがコントロール...
おすすめ情報