
英語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で質問しましょう!
似たような質問が見つかりました
- JavaScript html5に変えるとスライドショーが消えてしまった。 3 2022/03/26 19:53
- その他(OS) Windows Server評価版がダウンロードできない 1 2022/05/06 13:32
- HTML・CSS HTMLソースの質問 3 2022/07/28 13:29
- Oracle 質問です。 下記のテーブルとデータがあり、 取得想定結果のように出力したいです。 下記のsqlだと0 2 2023/05/23 19:10
- Android(アンドロイド) 海外のAndroid 端末の場合、日本語全角は、どう表示されるのでしょうか? 1 2022/10/02 21:16
- SQL Server [SQLServer] テーブル名からカラム名を取得する 1 2022/08/23 21:20
- 英語 下記の英文を日本語に訳してください。 1 2023/03/10 13:04
- ソフトウェア 移行PCにDockerがインストールされていても各種開発環境のアプリはインストールが必要? 2 2023/05/21 21:53
- Wi-Fi・無線LAN Windows10でWi-Fi6Eが使えない!?そもそもWi-Fi6Eってなんでしたっけ?教えて! 1 2023/01/27 20:48
- Excel(エクセル) Excelヘルプの原文を表示する最速の方法(手順)には? 1 2023/08/11 11:30
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
SQL 全角半角混在の文字列から...
-
16進数の指定の仕方
-
QNDを使うとクライアント側の情...
-
異なる文字コードの環境にイン...
-
SIDとSERVICE_NAMEの違いとは?
-
Oracle10g・・ODBCで接続できない
-
CloverをインストールしたUSBメ...
-
データソース名および指定され...
-
Windows Storeを使わずに付箋を...
-
qmailでBackscatter登録された...
-
オープン時にエラーが出て接続...
-
Cのコンパイラー(長文ですい...
-
.NET Frameworkがコントロール...
-
oracleのメモリ使用量が97%ほど...
-
パワプロ2013 オフラインパッチ
-
WiFi環境があればTikTokLiteは...
-
アナライズについて
-
突然オラクルへ接続できなくな...
-
MAGIQLIP2
-
ODBCの設定でSQLServer名がでない
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SQL 全角半角混在の文字列から...
-
16進数の指定の仕方
-
InsertもしくはUpdate時の文字...
-
文字コード、テリトリについて。
-
VBScript + oo4o 更新すると文...
-
Accessのキャラクタセット
-
文字コードについて
-
KeySQLで検索出来るキャラクタ...
-
NLS_CHARACTERSETについて
-
CloverをインストールしたUSBメ...
-
SIDとSERVICE_NAMEの違いとは?
-
突然オラクルへ接続できなくな...
-
データソース名および指定され...
-
DB2で SQL1032N start databas...
-
OraOps10.dllのエラーについて
-
SQL*PLUSにてデータベース名表示
-
正しいSQLなのに「ORA-00936: ...
-
ORA-12170のエラーについて
-
.NET Frameworkがコントロール...
-
oracleのメモリ使用量が97%ほど...
おすすめ情報