2011-11-08 15 views
0

Oracle 10gR2で作業しています。登録されたシンボルがそのまま表に挿入されない

DBの文字セットは以下の通りです:
NLS_NCHAR_CHARACTERSET AL16UTF16
NLS_CHARACTERSET AL32UTF8。

データがTXTファイルで処理されています。このデータを処理する最初のステップは、これらのフラット・ファイルに基づいて外部表を作成することです。フラットファイルのフィールド(およびDBの列)の1つに、®(登録済みシンボル)を含む文字列データがあります。この文字はtxtファイルに表示されますが、外部テーブルをチェックすると、文字は として保存されます

IDEのエンコーディングをUTF-8に変更しました。

列のデータ型がある:COL NVARCHAR2(1000)

これを引き起こしている可能性がどのようにと勧めてください?

答えて

0

一般的に、これはNLS_LANG環境変数の設定が正しくないために発生します。 NLS_LANG変数は、データに使用しているエンコーディングをOracleに通知する必要があります。 NLS_LANGが設定されていない場合、oracleはASCIIテキストを想定しています(シンボルは非asciiです)。

あなたのデータはUTF-8である場合は、試してみてください。

NLS_LANG = .AL32UTF8

窓/ ISOのためにあなたがのエンコーディングを決定する必要が

NLS_LANG = .WE8ISO8859P15

を試してみてくださいまずテキストファイルを作成します。 16進エディタを使用して、(R)シンボルがUTF-8であるかどうかを判断します。

+0

テキストファイルが格納されているLinuxボックスのNLS_LANGパラメータは、すでに正しく設定されています。export NLS_LANG = "American_America.AL32UTF8" – Incognito

+0

誰か他に何か提案できますか? – Incognito

+0

ありがとう!私はファイルの文字セットエンコーディングが間違っていて、それがキャラクタセットの変換を引き起こしていると考えました – Incognito