2016-11-07 4 views
0

として保存するデータベースの特殊文字は、私は、OracleデータベースへのÖzyeğin大学を保存しようとすると、それはÖzyeğとして保存されます=> G = ğ大学でのOracleアスキー

これはチェックし、私のクライアントのデータベースではなく、鉱山で発生そして、の両方が同じキャラクタセット=> NLS_CHARACTERSET = AL32UTF8

任意のアイデア

+0

私はよく分かりませんあなたの質問を理解する - 彼らは私に同じように見える(https://i.imgur.com/KiseYIG.png)。 –

+0

彼らは両方とも 'U + 011F':"ラヴェル小文字G with Breve "です。あなたの問題は何ですか? –

+0

データの挿入やクエリにはどのツールを使用しますか? –

答えて

4

ない、これはあなたの画面上でどのように見えるかを確認してくださいを使用しています。私の場合(デフォルトの米国の設定では)、文字はまったく同じです。それは:入力時または検索時(またはその両方)のいずれかで、(サーバー上の)データベース文字セットではなく、フロントエンド文字セット(クライアント)であることがよくあります。データベースに保存されている正確な文字を表示するには、そのような使用DUMP:あなたは、少なくとも問題を絞り込むことができますので、DBに格納されるかわからためにあなたを教えてくれます

select 'Özyeğin' as str, dump('Özyeğin') as codes from dual; 

- それは何であるかであります格納されているか、またはDBから選択したときに表示されるものだけで? (具体的にはDUMP()を正確には使用しないでください。select dump(col_name) from table_name where id = ...idは、大学名が入っている行のid値ですが、データベースの中にあるものは何かを見たいと思っています。私の例のように飛ぶcol_nameは大学の名前を含む列の名前です)

ここでは、SQL * Plusの短いセッションを示します。私の標準文字セットでどうすればいいのか分かりません(私のデフォルトはcp 1252です)。(コードページ1252、西ヨーロッパの文字セットのMicrosoft名)それはデータベースに送られる前にフロントエンドによって翻訳されます)、文字セットを1254(トルコ語の場合)に変更すると、文字は保存され、DUMPはコードページ1254の正しいコードを表示します。

だから、
SQL> select 'Özyeğin' as str, dump('Özyeğin') as codes from dual; 

STR  CODES 
------- ----------------------------------------- 
Özyegin Typ=96 Len=7: 214,122,121,101,103,105,110 


SQL> host chcp 1254 
Active code page: 1254 

SQL> select 'Özyeğin' as str, dump('Özyeğin') as codes from dual; 

STR  CODES 
------- ----------------------------------------- 
Özyeğin Typ=96 Len=7: 214,122,121,101,240,105,110 

:私は、データベースに入力されたデータに設定西欧の文字を使用した場合、その後、gはグラムに変更されました(データベース・キャラクタ・セットが何であるかは関係ありません、それは、Gを受けたことがないので、それを受け取ったg)。しかし、すべてがうまくいけば、データベースの結果を見るために使用されたフロントエンドがトルコ文字セットを使用していない場合でも、出力にgが表示されることがあります。 (しかし、後者の場合、 "g"を得られないかもしれません - クライアント文字セットにあるコード240を取得します; cp 1252では、g ...ではありません)

+0

SQL * Plusを起動すると、コマンド・ライン 'cmd.exe'からコード・ページを継承します。これは(デフォルトでは)CP1252ではなく、おそらくCP437(米国の場合)またはCP850(ほとんどのヨーロッパ諸国)です。 'chcp'コマンドで現在のコードページを得ることができます。 –

+0

@WernfriedDomscheit - あなたは覚えていないかもしれませんが、あなたはそれを教えてくれました。私のマシンでは、login.sqlに 'host chcp 1252'を追加したので、" default "は1252です。私はバッチファイルのコードページを変更する方法を説明したOTNのノートを書いています...ホストchcp ....より複雑です – mathguy

+0

あなたは正しいですが、デフォルトではコードページSQL * PlusはCP1252ではありません(ただし、多くの人がそれを想定しています)。 –

関連する問題