oracle10gデータベースに次の「変換」テーブルがあります。
ID VARCHAR2(100 BYTE)
LANGUAGE CHAR(2 BYTE)
COUNTRY CHAR(2 BYTE)
TRANSLATION NVARCHAR2(2000 CHAR)
TRACK_TIMESTAMP DATE
TRACK_USER VARCHAR2(2000 BYTE)
私がこれをやろうとすると:
update translation set translation = 'œ' where id = 'MY_ID' And language = 'fr';
次に、これを実行します。
select * from translation where id = 'MY_ID' and language = 'fr';
と翻訳の列が表示されます:S
の代わりにœ
、私は理由がわかりません。
従来の問題のため、データベース全体をUTF-8を使用するように変換できません。他にオプションはありますか?
現在、国別文字セットはAL16UTF16です。通常の文字セットはWE8ISO8859P1です。
私は現在Java1.6を使用しています
上記は簡略化した例です。実際のアプリケーションでのクエリは次のようになります。
UPDATE TRANSLATION SET TRANSLATION=? WHERE TRANSLATION.COUNTRY=? and TRANSLATION.ID=? and TRANSLATION.LANGUAGE=? 1=1,800 - 2,500 œufs par heure 2=CA 3=3_XT_FE_ECS18 4=fr
ここでの問題は、追加する代わりに追加するœufs
ことです¿ufs